2015-05-27 3 views
0

Я только что установил сервер neo4j в Windows и пытаюсь подключиться к php. Я XAMPP работает, установлен neo4jphp с композитором, а затем пытался проверить соединение с помощью следующего сценария:Неустранимая ошибка: исключение «Everyman Neo4j Exception» с сообщением «Не удалось получить информацию о сервере [401]:

<?php 
    require('vendor/autoload.php'); 


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

Теперь, вместо того чтобы показывать состояние сервера, фатальная ошибка, как это:

Fatal error: Uncaught exception 'Everyman\Neo4j\Exception' with message 'Unable to retrieve server info [401]: Headers: Array ([Date] => Wed, 27 May 2015 10:54:01 GMT [Content-Type] => application/json; charset=UTF-8 [WWW-Authenticate] => None [Content-Length] => 144 [Server] => Jetty(9.2.z-SNAPSHOT)) Body: Array ([errors] => Array ( [0] => Array ([message] => No authorization header supplied. [code] => Neo.ClientError.Security.AuthorizationFailed))) ' in C:\xampp\htdocs\neo4j\vendor\everyman\neo4jphp\lib\Everyman\Neo4j\Command.php:116 Stack trace: #0 C:\xampp\htdocs\neo4j\vendor\everyman\neo4jphp\lib\Everyman\Neo4j\Command\GetServerInfo.php(53): Everyman\Neo4j\Command->throwException('Unable to retri...', 401, Array, Array) #1 C:\xampp\htdocs\neo4j\vendor\everyman\neo4jphp\lib\Everyman\Neo4j\Command.php(69): Everyman\Neo4j\Command\GetServerInfo->handleResult(401, Array, Array) #2 C:\xa in C:\xampp\htdocs\neo4j\vendor\everyman\neo4jphp\lib\Everyman\Neo4j\Command.php on line 116

Как это решить? Любая помощь будет оценена. Заранее спасибо.

+0

Кстати, neo4j запущен и работает с местоположением db. C: \ Users \ myname \ Documents \ Neo4j \ default.graphdb ... !! – rgk

ответ

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()); 

Настройка пользователя/пароль, соответственно («Neo4j»/«Neo4j» являются по умолчанию те).

Другое решение - отключить требование авторизации при доступе к Neo4j. Это может быть сделано путем редактирования Neo4j конфигурационный файл:

conf/neo4j-server.properties 

и установка ложного следующего флага:

dbms.security.auth_enabled=false 

Конечно, вы должны помнить о необходимости перезапуска сервера впоследствии.

+0

спасибо за ответ. Исправлена ​​ошибка. – rgk

0

Если вы установили новейшую версию Neo4j, вам потребуется авторизация (укажите имя пользователя и пароль) для подключения к Neo4j. У вашего пакета Everyman, похоже, нет ни одного, либо вы используете более старый. Я сам использую Neoxygen/neoclient, что дает возможность указать имя пользователя и пароль.