2017-09-25 85 views
1

我有一個Elasticsearch-PHP應用程序,它在本地工作。但是,當我將它放在只支持PHP 5.3的RHEL 6服務器上時,它不起作用。當我去控制檯,我得到GET http://xx.x.xxx.xxx:xxxx/init.php 500(內部服務器錯誤)。我認爲這個問題可能來自init.php中的連接問題。這裏是init.php中的代碼:Elasticsearch-PHP應用程序不工作

<?php 
require_once 'vendor/autoload.php'; 
use Elasticsearch\ClientBuilder; 

/*Build connection*/ 
$hosts = [ 
'xx.x.xxx.xxx',    // Port 
]; 

$es = ClientBuilder::create() // Instantiate a new ClientBuilder 
     ->setHosts($hosts)  // Set the hosts 
     ->build();    // Build the client object 

?> 

這在當地是完美的。我不知道爲什麼當我將它傳輸到服務器時它不起作用。

+0

什麼是你的ES服務器的配置? – Val

+0

@Val我不認爲這是ES服務器的配置問題,我認爲問題在於PHP沒有識別代碼。我試着在PHP 5.3.10上運行這個代碼,它給了我這個錯誤:'解析錯誤:語法錯誤,意想不到'''在第6行第6行的C:\ wamp \ www \ test3 \ es.php中是它的地方說'$ hosts = ['它不識別語法 – user2896120

+0

你在本地主機上有什麼PHP版本? – Val

回答

1

在PHP 5.3.10短陣語法是不可用的,你可以簡單地通過使用array(),而不是解決您的代碼:

$hosts = array(
    'xx.x.xxx.xxx',    // Port 
); 
+0

嗯,你是對的...現在就要修復所有的Elasticsearch文件。謝謝你的幫助! – user2896120

+0

或者更好的是,升級PHP,因爲5.3.10是相當古老的並且受到其他錯誤的影響。 – Val

+0

我想要,但我正在爲在其RHEL 6服務器中使用PHP 5.3.3的組織工作。看起來它只支持5.3.3以外的版本 – user2896120