class_exists () и extension_loaded () случайно включены / отключены - PullRequest
0 голосов
/ 11 декабря 2018

Плагин 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

Что может быть не так с этим?это проблема кеширования?Спасибо.

...