2015-09-08 2 views
1

Я новичок в Neo4j. Я использую Neo4jPHP с WAMP, чтобы попытаться проверить мою связь с моей Neo4j базы данных с помощью следующего кода:Невозможно подключиться к Neo4j с помощью NeoClient для 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 ' in C:\wamp\www\vendor\everyman\neo4jphp\lib\Everyman\Neo4j\Command.php on line 116

Everyman\Neo4j\Exception: Unable to retrieve server info [401]: Headers: Array ([Date] => Tue, 08 Sep 2015 21:48:28 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:\wamp\www\vendor\everyman\neo4jphp\lib\Everyman\Neo4j\Command.php on line 116

As Я сказал: я новичок в Neo4j, поэтому не знаю, что я могу делать неправильно. Neo4j работает, и я смог проверить его, подключившись к localhost:7474

Любая помощь приветствуется!

ответ

1

Я думаю, что 401 означает, что Neo4j требует аутентификации. Глядя на neo4jphp, я не уверен, что он поддерживает аутентификацию Neo4j по умолчанию, которая была представлена ​​в Neo4j 2.2.0.

Вы можете проверить NeoClient. Из README код для подключения с помощью имени пользователя и пароля будет что-то вроде:

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

Если вы действительно хотите использовать neo4jphp можно отключить проверку подлинности (конечно, не рекомендуется, если вы не иначе обеспечили базу). Существует также этот вопрос на репо, которые могут быть полезны:

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

+0

Благодарим за помощь. Я последовал твоему предложению и попробовал NeoClient, у меня была аналогичная ошибка около 401, однако я последовал за некоторыми предложениями из другого сообщения о NeoClient, который сказал отключить проверку подлинности, и теперь я могу подключиться. Безопасно ли отключать аутентификацию? –

+0

Отключение это нормально для локального тестирования/разработки. Если вы размещаете базу данных где-то там, где люди могут получить к ней доступ, вам, вероятно, захочется вернуться к ней. –

+1

Одна вещь, о которой я забыл упомянуть: имя пользователя/пароль по умолчанию - 'neo4j' /' neo4j'. Вы меняете это при первом входе в веб-консоль. –

0

это может решить проблему. Замените HOSTNAME, PORT, USER и PASSWORD с вашими значениями.

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

 Смежные вопросы

  • Нет связанных вопросов^_^