我正在使用neo4j,3.3.4,是新安装的默认配置,我可以从我的浏览器访问,当我尝试从我的应用程序访问时,silex返回: cURL错误7:无法连接到localhost端口7474:拒绝连接。我在我的作曲家文件中有这个:
$app->register(new Neo4jServiceProvider(), array(
'neo4j.transport' => 'localhost', // Hostname as string, or Everyman\Neo4j\Transport object
'neo4j.port' => 7474, // Port number, ignored if transport is not a string
));
在AppServiceProvider文件中
$client = ClientBuilder::create()
->addConnection('default', 'http://neo4j:1234567@localhost:7474')// Example for HTTP connection configuration (port is optional)
->build();
$query = 'MATCH (n:Person) RETURN n';
$result = $client->run($query);
var_dump($result);
}
这是控制器代码:
{{1}}
答案 0 :(得分:0)
我忘记了一个至关重要的细节,我的php代码是从Docker容器运行的,因此,消耗Neo4j服务器的地址不能是 localhost ,它必须是, 172.17.0.1 ,现在效果很好,我把它留在这里让其他人使用它。 :)
最后我创建了一个docker文件来放置php容器和Neo4j容器,这里是docker文件。
version: "3.2"
services:
neo4j:
image: neo4j:3.3.4
ports:
- "7474:7474"
- "7687:7687"
app:
image: silex:dev
volumes:
- .:/var/www
links:
- neo4j
ports:
- "7018:80"
这样在控制器中我可以通过以下方式调用Neo4j(我使用的用户是: neo4j 和密码: 1234567 ):
$client = ClientBuilder::create()
->addConnection('bolt', 'bolt://neo4j:1234567@neo4j:7687')
->build();
$query = "MATCH (n:Movie) RETURN n LIMIT 25";
$result = $client->run($query);