无法使用PHP将https连接到GCP上的Elastic Cloud

时间:2018-09-18 17:15:14

标签: php elasticsearch https google-cloud-platform elastic-cloud

我试图使用Google Cloud Platform在Elastic Cloud上使用试用帐户设置“ Hello Word”。

我已经设置了云服务器,并且可以将它们直接与端点https://7fea4de80333428485717a0da463ce05.us-central1.gcp.cloud.es.io:9243/上的浏览器连接

当尝试使用ElasticSearch PHP API连接到它时,出现以下错误: 致命错误:未捕获的Elasticsearch \ Common \ Exceptions \ NoNodesAvailableException:在/home/mysite/public_html/mysite.com/vendor/elasticsearch/elasticsearch/src/Elasticsearch/ConnectionPool/StaticNoPingConnectionPool.php

中的群集中未找到活动节点

我正在使用带有免费SSL证书的HostGator共享主机来运行php脚本。

代码如下:

<?php
require 'vendor/autoload.php';

use Elasticsearch\ClientBuilder;

$hosts = ["https://elastic:mypassword@7fea4de80333428485717a0da463ce05.us-central1.gcp.cloud.es.io:9243/"];

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

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

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

echo $response;

?>

我还尝试在localhost上安装ElasticSearch。如果我使用http而不是https,则在localhost上可以使用相同的代码,但就我所知,GCP上的Elastic Cloud不支持http。

有人对如何进行此简单工作有任何想法吗?我尝试了一些事情,例如使用ElasticSearch文档中指出的CaBundle,但没有成功。

0 个答案:

没有答案