簡體   English   中英

使用ElasticSearch PHP客戶端獲取“ cURL錯誤7”連接到托管的ElasticSearch服務器

[英]Getting “cURL error 7” connecting to hosted ElasticSearch servers using ElasticSearch PHP Client

嘗試連接到由ObjectRocket托管的ES,但出現以下錯誤...

Fatal error: Uncaught exception 'Elasticsearch\Common\Exceptions\TransportException' with message 'cURL error 7: See http://curl.haxx.se/libcurl/c/libcurl-errors.html'
in /var/www/html/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php:201 Stack trace:
#0 /var/www/html/vendor/react/promise/src/FulfilledPromise.php(25): Elasticsearch\Connections\Connection->Elasticsearch\Connections\{closure}(Array)
#1 /var/www/html/vendor/react/promise/src/Promise.php(114): React\Promise\FulfilledPromise->then(Object(Closure), NULL)
#2 /var/www/html/vendor/react/promise/src/Promise.php(159): React\Promise\Promise->React\Promise\{closure}(Object(React\Promise\FulfilledPromise))
#3 /var/www/html/vendor/react/promise/src/Promise.php(128): React\Promise\Promise->settle(Object(React\Promise\FulfilledPromise))
#4 /var/www/html/vendor/react/promise/src/Promise.php(177): React\Promise\Promise->resolve(Array)
#5 [internal function]: React\Promise\Promise->React\Promise\{closure}(Array)
#6 /var/www/html/vendor/react/pro in /var/www/html/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php on line 201

我的PHP代碼:

<?php

  ini_set('display_errors', 1);
  ini_set('display_startup_errors', 1);
  error_reporting(E_ALL);

  require 'vendor/autoload.php';

  use Elasticsearch;
  use Elasticsearch\ClientBuilder;

  $multiHandler = ClientBuilder::multiHandler();

  $hosts = [
    'http://user:pass@0.es.objectrocket.com:10183',
    'http://user:pass@1.es.objectrocket.com:10183',
    'http://user:pass@2.es.objectrocket.com:10183',
    'http://user:pass@3.es.objectrocket.com:10183'
  ];

  $client = ClientBuilder::create()->setHosts($hosts)->setHandler($multiHandler)->build();

  $params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => 'my_id',
    'body' => [
      'testField' => 'abc'
    ]
  ];

  $response = $client->index($params);
  print_r($response);
?>

但是,如果我從終端運行curl命令,則連接沒有問題...

curl -XGET http://user:pass@0.es.objectrocket.com:10183

我認為缺少php5-curl擴展包。 如果您使用的是基於Ubuntu或Linux的系統,

sudo apt-get install php5-curl

如果使用的是nginx,則運行上面的命令將自動重新啟動php5-fpm,但是,如果使用的是apache2,請重新啟動apache2和php5-fpm

sudo service apache2 restart
sudo service php5-fpm restart

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM