执行以下行时出现此错误:
$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 :(得分:2)
今天我遇到了同样的问题,经过几个小时,在我的WSDL URL上尝试file_get_contents
之后,我注意到我的apache错误日志中出现了权限被拒绝错误。我发现SELinux是罪魁祸首。我相信默认情况下,SELinux会阻止httpd发出自己的网络请求(至少在Fedora上)。
修复程序为:setsebool -P httpd_can_network_connect 1
,然后允许Apache连接到远程服务(它适用于SSL和非SSL请求)。