SoapClient无法加载WSDL,需要重新启动apache才能再次运行

时间:2015-06-23 04:47:29

标签: php centos

服务器是CENTOS,PHP 5.4和Apache 2.2。

我有一个像这样的SoapClient对象:

$client = new \SoapClient(__DIR__ . "/wsdlfilehere.wsdl", array("soap_version"=>SOAP_1_2, "trace"=>true));

一段时间后(24小时内),此代码会抛出错误:

  

SOAP-ERROR:解析WSDL:无法从' /wsdlfilehere.wsdl'加载; :无法加载外部实体" /wsdlfilehere.wsdl"。

然后 之后我重新启动apache并再次运行。

编辑:即使将cache_wsdl设置为WSDL_CACHE_NONE也无法解决问题。

1 个答案:

答案 0 :(得分:0)

在挖掘之后我终于找到了解决方法/解决方案。

link on Ubuntu's launchpad之后,似乎其他人也遇到了这个问题。我跟着zabuch's instruction at comment #6,现在似乎工作了。我同意他的观点,问题可能出在mod_php / php本身,而不仅仅是Ubuntu,因为我在CentOS上并遇到过这个问题。

来自zabuch的评论:

  

问题的解决方法是添加:

     

libxml_disable_entity_loader(假);

     

在创建新的SoapClient之前。