一个woocommerce插件要求我启用类SoapClient()
。
我在Ubuntu Server 16.04上将 PHP 5.6.38与Apache2结合使用。
我启动了以下命令来安装soap PHP模块:
apt-get install php5.6-soap
apt-get install php7.0-soap
我有两个命令,因为我有PHP 5.6(Apache)和PHP 7.2(cli),但我不知道是否要为两个都启用soapclient。
现在,当我进入phpinfo网页时,我可以看到:
soap
Soap Client enabled
Soap Server enabled
//With the wsdl info below from the default php.ini config
这是个好消息,但当我刷新此页面时,它随机消失并再次出现。所有其他扩展都保持加载状态,但不是这个。
当PHP代码测试{strong> SoapClient 是否存在class_exists("SoapClient")
或extension_loaded("soap")
时,它也会随机失败。
我创建了一个快速的PHP文件进行测试:
if (class_exists('SoapClient')) {
echo "soap OK, ";
}
else {
echo "soap NOT OK, ";
}
if (extension_loaded('soap')) {
echo "ext soap OK ";
}
else {
echo "ext soap NOT OK";
}
这显示了我:
肥皂可以,ext肥皂可以
一些刷新后:
肥皂不正确,ext肥皂不正确
一次又一次,似乎有时但不总是在加载扩展。 我的设置根据phpinfo:
PHP 5.6.38
Zend Engine v2.6.0 with the ionCube PHP Loader (enabled) +
Intrusion Protection from ioncube24.com (unconfigured) v6.0.9,
with Zend OPcache v7.0.6-dev
extension_dir /usr/lib/php/20131226 ---> containing soap.so
以下代码始终会引发错误(如预期的那样,在加载扩展名时):
$spc = new SoapClient("failme"); // triggers a parsing WDSL: couldn' load from failme when the extension is loaded
php5.6 -i | grep -i soap
总是告诉我,soap已启用(但是我猜它使用的是仅CLI版本)...
PHP.ini具有默认的[soap]配置。
我尝试了opcache_reset(); //not helping
这可能是什么问题?这是一个缓存问题吗? 谢谢。