2016-05-22 9 views
3

Ich möchte eine Rails-Anwendung mit Neo4jrb zur Produktion mit Capistrano bereitstellen. Während des Einsatzes zeigt der folgende Fehler auf:Neo4j, Capistrano-Bereitstellung, Authentifizierungsfehler

DEBUG [5a528d81] Finished in 0.057 seconds with exit status 0 (successful). 
INFO [acd66fd5] Running /usr/local/bin/chruby-exec 2.3.0 -- bundle exec rake assets:precompile as [email protected] 
DEBUG [acd66fd5] Command: cd /home/deploy/projects/larp-tool/releases/20160522103925 && (export RAILS_ENV="production" ; /usr/local/bin/chruby-exec 2.3.0 -- bundle exec rake assets:precompile) 
DEBUG [acd66fd5] rake aborted! 
DEBUG [acd66fd5] Neo4j::Server::Resource::ServerException: Expected response code 200 Error for request http://localhost:7474/db/data/, 401 
DEBUG [acd66fd5] /home/deploy/projects/larp-tool/shared/bundle/ruby/2.3.0/gems/neo4j-core-6.1.4/lib/neo4j-server/resource.rb:37:in `handle_response_error!' 
/home/deploy/projects/larp-tool/shared/bundle/ruby/2.3.0/gems/neo4j-core-6.1.4/lib/neo4j-server/resource.rb:32:in `expect_response_code!' 
/home/deploy/projects/larp-tool/shared/bundle/ruby/2.3.0/gems/neo4j-core-6.1.4/lib/neo4j-server/cypher_session.rb:86:in `initialize_resource' 
... 

ich die folgenden Anmeldeinformationen in neo4.yml:

production: 
    type: server_db 
    url: http://username:[email protected]:7474 

und auch versucht:

production: 
    type: server_db 
    url: http://localhost:7474 
    username: username 
    password: password 

I eingerichtet, um diese Anmeldeinformationen mit dem Neo4j REST Api, und wenn ich curl auf dem Server laufen alles scheint gut:

curl http://username:[email protected]:7474/db/data/ 

Warum gibt es einen Fehler bei der Bereitstellung?

+0

Welche Task versucht, eine Verbindung zur db herzustellen? –

+0

scheint es zu sein "Rake Assets: Precompile", aber ich verstehe nicht warum ... – LimonChillo

+0

'Assets: Precompile' muss die Rails-Umgebung, die die' railtie' aus dem 'neo4j' Juwel, die geöffnet wird, zu laden eine Sitzung zu Neo4j bei der Initialisierung der Rails App. –

Antwort

1

Beide Ihrer neo4j.yml Dateien sieht gut aus für mich. Die 401 im Fehler bedeutet, dass die Authentifizierung nicht funktioniert. Es gibt ein paar Möglichkeiten:

  • Haben Sie das Passwort in Neo4j auf Produktion eingestellt, indem Sie sich in das Webinterface einloggen? Neo4j erlaubt dir nicht, dich über die HTTP-Endpunkte (die das Juwel verwendet) mit dem Standard-Benutzernamen/Passwort zu verbinden und du musst es also ändern. Wenn Sie die Datenbank lokal mit den rake Aufgaben eingerichtet haben, haben Sie dies wahrscheinlich nicht getroffen, weil sie den Server ohne Authentifizierung eingerichtet haben, um diesen Prozess zu erleichtern.
  • Sie könnten versuchen, den NEO4J_URL Umgebungsvariable http://username:[email protected]:7474 Einstellung zu sehen, was Sie
  • Als Plausibilitätsprüfung erhalten: Ist Ihre Neo4j Datenbank auf dem gleichen Server wie Ihre Anwendung ausgeführt wird (sonst localhost nicht Sinn machen würde)?