2012-03-02 68 views
1

負載,同時執行以下行我得到這個錯誤:SOAP的錯誤:解析WSDL:無法從URL

$client = new soapclient('https://example.com/xxx/pgw?wsdl=xyz.wsdl');

錯誤:

SoapFault: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost:8080/xxx/pgw?wsdl=xyz.wsdl' : failed to load external entity "http://localhost:8080/xxx/pgw?wsdl=xyz.wsdl" in SoapClient->SoapClient() (line 39 of /var/www/.../myscript.php).

我已經檢查了在我的瀏覽器中的網址,沒關係。 什麼會導致錯誤?

+0

您是否啓用SSL? http://stackoverflow.com/questions/3726242/php-soapclient-unable-to-work-with-https-ws – 2012-03-02 12:31:19

+0

@cillosis是的。 OpenSSL已啓用 – user16948 2012-03-02 12:38:39

+0

您可以將代碼粘貼到問題中... – ManseUK 2012-03-02 13:06:52

回答

1

我在今天遇到了同樣的問題,經過幾個小時,並在我的WSDL URL上嘗試file_get_contents之後,我發現我在apache錯誤日誌中獲得了拒絕權限的錯誤。我發現SELinux是罪魁禍首。我相信默認情況下,SELinux會阻止httpd發出自己的網絡請求(至少在Fedora上)。

修復程序爲:setsebool -P httpd_can_network_connect 1,然後允許Apache連接到遠程服務(它同時適用於SSL和非SSL請求)。

相關問題