class_exists()和extension_loaded()随机启用/禁用

时间:2018-12-11 11:37:14

标签: php soap woocommerce opcache

一个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

这可能是什么问题?这是一个缓存问题吗? 谢谢。

0 个答案:

没有答案