我刚刚在Windows中安装了neo4j服务器,我正在尝试与php连接。我运行了xampp,用composer安装了neo4jphp,然后尝试使用以下脚本检查连接:
<?php
require('vendor/autoload.php');
$client = new Everyman\Neo4j\Client('localhost', 7474);
print_r($client->getServerInfo());
?>
现在,不是显示服务器状态,而是发生致命错误:
致命错误:未捕获的异常&#39; Everyman \ Neo4j \ Exception&#39;同 消息&#39;无法检索服务器信息[401]:标题:数组([日期] =&GT; 2015年5月27日星期三10:54:01 GMT [Content-Type] =&gt;应用/ JSON; charset = UTF-8 [WWW-Authenticate] =&gt;无[Content-Length] =&gt; 144 [服务器] =&gt; Jetty(9.2.z-SNAPSHOT))正文:数组([errors] =&gt;数组( [0] =&gt;数组([message] =&gt;未提供授权标题。[code] =&GT; Neo.ClientError.Security.AuthorizationFailed)))&#39;在C:\ xampp \ htdocs \ neo4j \ vendor \ everyman \ neo4jphp \ lib \ Everyman \ Neo4j \ Command.php:116 堆栈跟踪:#0 C:\ XAMPP \ htdocs中\ Neo4j的\厂商\普通人\ neo4jphp \ lib中\普通人\ Neo4j的\命令\ GetServerInfo.php(53): Everyman \ Neo4j \ Command-&gt; throwException(&#39;无法重新...&#39;,401, 数组,数组)#1 C:\ XAMPP \ htdocs中\ Neo4j的\厂商\普通人\ neo4jphp \ lib中\普通人\ Neo4j的\ Command.php(69): Everyman \ Neo4j \ Command \ GetServerInfo-&gt; handleResult(401,Array,Array) C:\ xampp \ htdocs \ neo4j \ vendor \ everyman \ neo4jphp \ lib \ Everyman \ Neo4j \ Command.php中的#2 C:\ xa 在第116行
如何解决这个问题?任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:0)
如果您安装了最新版本的Neo4j,则需要授权(提供用户名和密码)才能连接到Neo4j。您的Everyman包似乎没有,或者您使用的是旧版。我自己使用Neoxygen/neoclient,它确实提供了提供用户名和密码的功能。
答案 1 :(得分:0)
它会起作用。您只需要定义授权凭证,例如:
<?php
require('vendor/autoload.php');
$client = new Everyman\Neo4j\Client(
(new Everyman\Neo4j\Transport\Curl('localhost',7474))
->setAuth('neo4j','neo4j')
);
print_r($client->getServerInfo());
相应地调整用户/密码(&#39; neo4j&#39; /&#39; neo4j&#39;是默认值)。
另一种解决方案是在访问Neo4j时禁用授权要求。这可以通过编辑Neo4j配置文件来完成:
conf/neo4j-server.properties
并将以下标志设置为false:
dbms.security.auth_enabled=false
当然,您需要记住以后重新启动服务器。