2010-07-04 67 views
0

我使用的NuSOAP連接到Web服務上有一個php腳本:PHP腳本的NuSOAP不工作

$uri = 'http://soap.1011.my-online-check.com:8080/avavoip_gate.php?wsdl'; 
$client = new nusoap_client($uri, true, false, false, false, false, 30, 90); 
$client->setHeaders($headers); 
$result = $client->call($method, $args); 

它工作正常,在我的Mac。

然而,當我上傳了同樣的腳本來我的兩個虛擬主機提供商都使用的cPanel,其中之一是bluehost.com,腳本失敗並出現以下錯誤:

Error: wsdl error: Getting ' http://soap.1011.my-online-check.com:8080/avavoip_gate.php?wsdl - HTTP ERROR: Couldn't open socket connection to server ' http://soap.1011.my-online-check.com:8080/avavoip_gate.php?wsdl , Error (110): Connection timed out

所以我就安裝了CentOS我的另一臺PC測試腳本。最初我在上面得到了同樣的錯誤,但是在將SELinux設置爲Permissive而不是Enforcing之後,腳本也可以正常工作。

我試過要求我的託管服務提供商更改SELinux設置,但無濟於事。有關如何讓我的腳本可以在我的虛擬主機提供程序上工作的任何建議?

回答

0

I have tried asking my hosting providers to change the SELinux settings but to no avail

他們拒絕了,還是他們沒有迴應?

SELinux的限制問題幾乎歸結爲「Apache可以和它產生的東西使HTTP連接?」,所以如果他們不願意改變這種權限,你幾乎是一個小溪。

這就是說,超時是而不是通常您在SELinux阻止操作時得到的結果。通常你會看到「權限被拒絕」。可能還有其他東西阻塞了傳出連接。

+0

感謝您的及時答覆之前。其中一位提供者表示,他們已經將SELinux設置爲寬容,但我仍然遇到這種錯誤。不知道還有什麼要求他們去解決問題。 – John 2010-07-04 10:29:27

1

你也可以嘗試使用curl作爲替代。爲了您的NuSOAP客戶:

$client->use_curl = TRUE; 

調用$client->call