Я новичок в Neo4j. Я использую Neo4jPHP с WAMP, чтобы попытаться проверить мое соединение с базой данных Neo4j с помощью следующего кода:
require('vendor/autoload.php');
$client = new Everyman\Neo4j\Client('localhost', 7474);
print_r($client->getServerInfo());
Но когда я запускаю приведенный выше код, я получаю следующие ошибки:
Неустранимая ошибка: необработанное исключение «Everyman \ Neo4j \ Exception» с сообщением »в C: \ wamp \ www \ vendor \ everyman \ neo4jphp \ lib \ Everyman \ Neo4j \ Command.php в строке 116
Everyman \ Neo4j \ Exception: Невозможно получить информацию о сервере [401]: Заголовки: Массив ([Дата] => Вторник, 08 сентября 2015 21:48:28 GMT [Content-Type] => application / json; charset = UTF- 8 [WWW-Authenticate] => Нет [Content-Length] => 144 [Server] => Jetty (9.2.z-SNAPSHOT)) Тело: Массив ([ошибки] => Массив ([0] => Массив ([ message] => Не указан заголовок авторизации. [code] => Neo.ClientError.Security.AuthorizationFailed))) в C: \ wamp \ www \ vendor \ everyman \ neo4jphp \ lib \ Everyman \ Neo4j \ Command.php в строке 116
Как я уже сказал, я новичок в Neo4j, поэтому я не знаю, что я могу делать неправильно. Neo4j запущен, и я смог проверить его, подключившись к localhost:7474
Любая помощь приветствуется!
Я думаю, что 401 означает, что Neo4j требует аутентификации. Глядя на neo4jphp, я не уверен, что он поддерживает аутентификацию Neo4j по умолчанию, которая была представлена в Neo4j 2.2.0.
Вы можете проверить NeoClient. Из README код для подключения с именем пользователя и паролем будет выглядеть примерно так:
$client = ClientBuilder::create()
->addConnection('default', 'http', 'myserver.dev', 7474, true, 'username', 'password')
->build();
Если вы действительно хотите использовать neo4jphp, вы можете отключить аутентификацию (конечно, не рекомендуется, если вы не защитили базу данных иным образом). Существует также эта проблема в репо, которая может быть полезна:
это может решить проблему. Замените HOSTNAME, PORT, USER и PASSWORD своими значениями.
$client = new Everyman\Neo4j\Client(HOSTNAME, PORT);
$client->getTransport()->setAuth(USER, PASSWORD);