与neo4j的PHP连接;卷曲误差7“;

与neo4j的PHP连接;卷曲误差7“;,php,laravel,curl,neo4j,Php,Laravel,Curl,Neo4j,我遵循了这个步骤,但我发现了这个错误,你能帮我吗 HttpRequestEventSubscriber.php第74行中的HttpException:上的错误 带有消息“cURL error 7:无法连接到”的连接“default” 本地主机端口7474:连接被拒绝(请参阅 )" 这是我的.env代码 `APP_ENV=local APP_DEBUG=true APP_KEY=ChTIcRHTSR35M6rP0jwmOmhMNLuFpMVe NEO4J_HOST=localhost NEO4J

我遵循了这个步骤,但我发现了这个错误,你能帮我吗

HttpRequestEventSubscriber.php第74行中的HttpException:上的错误 带有消息“cURL error 7:无法连接到”的连接“default” 本地主机端口7474:连接被拒绝(请参阅 )"

这是我的.env代码

`APP_ENV=local
APP_DEBUG=true
APP_KEY=ChTIcRHTSR35M6rP0jwmOmhMNLuFpMVe

NEO4J_HOST=localhost
NEO4J_PORT=7474
NEO4J_USER=neo4j
NEO4J_PASSWORD=admin
NEO4J_TIMEOUT=300

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
`
这是NeoClientServiceProvider代码

    <?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Neoxygen\NeoClient\ClientBuilder;

class NeoClientServiceProvider extends ServiceProvider
{
    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        $this->app->singleton('neoclient', function ($app) {
            return ClientBuilder::create()
                ->addConnection('default', 'http', env('NEO4J_HOST'), intval(env('NEO4J_PORT')), true, env('NEO4J_USER'), env('NEO4J_PASSWORD'))
                ->setDefaultTimeout( intval(env('NEO4J_TIMEOUT')) )
                ->setAutoFormatResponse(true)
                ->build();
        });
    }
}
别名

'NeoClient' => App\NeoClient::class
这是NeoClient类代码

 <?php namespace App;

use Illuminate\Support\Facades\Facade;

class NeoClient extends Facade
{

    protected static function getFacadeAccessor() { return 'neoclient'; }
}

好的。我安装Homestead是为了重现您的环境。如评论中所述,这本应是一个主要问题。我设法使您与neo4j的连接正常工作:

  • ssh到宅地:
  • 
    sshvagrant@127.0.0.1-第2222页
    

  • 显示漫游框的网关ip:
  • 
    vagrant@homestead:~$ip路由显示
    通过10.0.2.2 dev eth0默认设置
    10.0.2.0/24 dev eth0原型内核作用域链接src 10.0.2.15
    192.168.10.0/24 dev eth1原型内核作用域链接src 192.168.10.10
    

    这里的主机网关是10.0.2.2

  • 将网关用作neo4j主机:
  • 
    $curl--用户neo4j:admin“http://10.0.2.2:7474/db/data/"
    “扩展”:{},
    “节点”:”http://10.0.2.2:7474/db/data/node",
    “节点索引”:http://10.0.2.2:7474/db/data/index/node",
    “关系索引”:http://10.0.2.2:7474/db/data/index/relationship",
    “扩展信息”:http://10.0.2.2:7474/db/data/ext",
    “关系类型”:http://10.0.2.2:7474/db/data/relationship/types",
    “批次”:http://10.0.2.2:7474/db/data/batch",
    “密码”:http://10.0.2.2:7474/db/data/cypher",
    “索引”:http://10.0.2.2:7474/db/data/schema/index",
    “限制”:http://10.0.2.2:7474/db/data/schema/constraint",
    “交易”:http://10.0.2.2:7474/db/data/transaction",
    “节点_标签”:http://10.0.2.2:7474/db/data/labels",
    “neo4j_版本”:“3.0.0-alpha.163”
    

    错误很明显:可能没有人在该端口上侦听。该端口用于neo4j连接。该链接是我用来打开neo4j浏览器的。请编辑您的问题并添加您正在执行的代码。这个错误可能有42个不同的原因。那么homestead vagrant localhost与主机上的neo4j服务器使用的localhost不同吗?看起来您的主机上安装了neo4j
    localhost
    ,您试图做的是从
    guest
    (homestead)访问主机。也许这能帮上忙:谢谢你,非常非常感谢
     <?php namespace App;
    
    use Illuminate\Support\Facades\Facade;
    
    class NeoClient extends Facade
    {
    
        protected static function getFacadeAccessor() { return 'neoclient'; }
    }
    
      <?php
    
    namespace App\Http\Controllers;
    
    use App\NeoClient;
    use Illuminate\Http\Request;
    
    use App\Http\Requests;
    use App\Http\Controllers\Controller;
    
    class test extends Controller
    {
    
        public function index()
        {
    
            $data = NeoClient::sendCypherQuery('CREATE (user:User {name:"Kenneth"}) RETURN user');
    
        }
    
    }
    
     public function addConnection($alias, $scheme, $host, $port, $authMode = false, $authUser = null, $authPassword = null)
        {
            $this->configuration['connections'][$alias] = array(
                'scheme' => $scheme,
                'host' => $host,
                'port' => $port,
                'auth' => $authMode,
                'user' => $authUser,
                'password' => $authPassword,
            );
      dd($this);
            return $this;
        }