Плагин woocommerce просит меня включить класс SoapClient()
.
Я использую PHP 5.6.38 с Apache2 на Ubuntu Server 16.04 .
Я запустилСледующие команды для установки PHP-модуля soap:
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 проверяет, существует ли 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
всегда говорит мне, чтоМыло включено (но я думаю, что оно использует версию только для CLI) ...
PHP.ini имеет конфигурацию по умолчанию [soap].Я пытался opcache_reset(); //not helping
Что может быть не так с этим?это проблема кеширования?Спасибо.