1

私はNeo4jが初めてです。次のコードでNeo4jデータベースへの接続をテストするために、WAMPでNeo4jPHPを使用しています。

require('vendor/autoload.php');

$client = new Everyman\Neo4j\Client('localhost', 7474);
print_r($client->getServerInfo());

しかし、上記のコードを実行すると、次のエラーが発生します。

致命的なエラー: C:\wamp\www\vendor\everyman\neo4jphp\lib\Everyman\Neo4j\Command.php 行 116 のメッセージ ' を含む例外 'Everyman\Neo4j\Exception' がキャッチされませんでした

Everyman\Neo4j\Exception: サーバー情報を取得できません [401]: ヘッダー: 配列 ( [Date] => 2015 年 9 月 8 日火曜日 21:48:28 GMT [Content-Type] => application/json; charset=UTF- 8 [WWW-Authenticate] => None [Content-Length] => 144 [Server] => Jetty(9.2.z-SNAPSHOT) ) 本体: 配列 ( [エラー] => 配列 ( [0] => 配列 ( [ message] => No authorization header provided. [code] => Neo.ClientError.Security.AuthorizationFailed ) ) ) C:\wamp\www\vendor\everyman\neo4jphp\lib\Everyman\Neo4j\Command.php の 116 行目

私が言ったように、私は Neo4j を初めて使用するので、何が間違っているのかわかりません。Neo4j が実行されており、接続してテストできました。localhost:7474

どんな助けでも大歓迎です!

4

2 に答える 2

1

401 は、Neo4j が認証を要求していることを意味すると思います。neo4jphpを見ると、Neo4j 2.2.0で導入されたNeo4jのデフォルト認証をサポートしているかどうかわかりません。

NeoClientをチェックアウトできます。README から、ユーザー名とパスワードで接続するコードは次のようになります。

$client = ClientBuilder::create()
    ->addConnection('default', 'http', 'myserver.dev', 7474, true, 'username', 'password')
    ->build();

本当に neo4jphp を使用したい場合は、認証を無効にすることができます (データベースを保護していない限り、もちろんお勧めしません)。参考になるかもしれないレポにもこの問題があります:

https://github.com/jadell/neo4jphp/issues/165

于 2015-09-08T23:07:23.617 に答える
0

これで問題が解決する場合があります。HOSTNAME、PORT、USER、および PASSWORD を実際の値に置き換えます。

$client = new Everyman\Neo4j\Client(HOSTNAME, PORT);
$client->getTransport()->setAuth(USER, PASSWORD);
于 2015-11-18T21:28:03.857 に答える