无法使用NeoClient for PHP连接到Neo4j

时间:2015-09-08 21:59:54

标签: php neo4j neo4jphp

我是Neo4j的新手。我使用Neo4jPHP和WAMP尝试使用以下代码测试我与Neo4j数据库的连接:

require('vendor/autoload.php');

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

但是当我运行上面的代码时,我得到了这些错误:

  

致命错误:未捕获的异常' Everyman \ Neo4j \ Exception'有消息'在第116行的C:\ wamp \ www \ vendor \ everyman \ neo4jphp \ lib \ Everyman \ Neo4j \ Command.php

     

Everyman \ Neo4j \例外:无法检索服务器信息[401]:标题:数组([日期] =>星期二,08九月2015 21:48:28 GMT [内容类型] => application / json ; charset = UTF-8 [WWW-Authenticate] =>无[Content-Length] => 144 [Server] => Jetty(9.2.z-SNAPSHOT))正文:数组([errors] =>数组([0] =>数组([消息] =>没有提供授权标题。[code] => Neo.ClientError.Security.AuthorizationFailed)))在C:\ wamp \ www \ vendor \ everyman \ neo4jphp \第116行的lib \ Everyman \ Neo4j \ Command.php

正如我所说,我是Neo4j的新手,所以我不知道自己可能做错了什么。 Neo4j正在运行,我已经能够通过连接到localhost:7474

来测试它

感谢任何帮助!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

这可能会解决问题。用您的值替换HOSTNAME,PORT,USER和PASSWORD。

$client = new Everyman\Neo4j\Client(HOSTNAME, PORT);
$client->getTransport()->setAuth(USER, PASSWORD);