neo4j-silex上的连接拒绝

时间:2018-04-10 15:52:37

标签: php neo4j

我正在使用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}}

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