Я пытаюсь использовать простой пример веб-службы, и я получаю эту ошибку, хотя я раскомментировал extension=php_soap.dll
в файле php.ini
:
Неустранимая ошибка: Класс "SoapClient" не найден в C:\Program Files (x86)\EasyPHP-5.3.9\www\server.php в строке 2
Диагностика
Посмотрите следующее в файле script
phpinfo();
Если вы не можете найти Soap Client
для параметра enabled
следующим образом:
Fix
Выполните следующие действия:
php.ini
в папке bin apache, I.e Apache/bin/php.ini
;
с начала extension=php_soap.dll
phpinfo();
и проверьте, видите ли вы аналогичную картинку выше.С другой стороны, если это не решит вашу проблему, вы можете проверить требования для SOAP здесь. Также в разделе комментариев вы можете найти хороший совет по подключению к https.
Чтобы установить SOAP в PHP-7, выполните в своем терминале Ubuntu следующее:
sudo apt-get install php7.0-soap
Чтобы установить SOAP в PHP-7.1, выполните в своем терминале Ubuntu следующее:
sudo apt-get install php7.1-soap
Чтобы установить SOAP в PHP-7.2, выполните в своем терминале Ubuntu следующее:
sudo apt-get install php7.2-soap
Чтобы установить SOAP в PHP-7.3, выполните в своем терминале Ubuntu следующее:
sudo apt-get install php7.3-soap
sudo apt-get install php-soap
Для AWS (RHEL):
sudo yum install php56-soap
(56 здесь 5.6 PHP версия - введите свою версию здесь).
sudo yum install php56w-soap
! Я забыл w, и это устанавливает, и все же это не сработало. Потребовалось время, чтобы понять это, но теперь это работает.
Чтобы установить SOAP в PHP5.6, выполните следующие действия в терминале Ubuntu 14.04:
sudo apt-get install php5.6-soap
service php5.6-fpm restart
service apache2 restart
Посмотрите, включен ли SOAP:
php -m
(Вы должны увидеть SOAP между возвращенным текстом.)
Мне пришлось запускать
php-config --configure-options --enable-soap
как root и перезапустите apache.
Это сработало! Теперь мой вызов phpinfo() показывает раздел SOAP.
reboot
должна быть упомянута, что его перезагрузка apache, не перезагрузка сервера.
Я решил эту проблему на PHP 7.0.22-0ubuntu0.16.04.1 nginx
sudo apt-get install php7.0-soap
sudo systemctl restart php7.0-fpm
sudo systemctl restart nginx
Я не могу найти раздел SOAP
в phpinfo()
, поэтому мне пришлось его установить.
Для информации для расширения SOAP
требуется расширение libxml
PHP. Это означает, что передача в --enable-libxml
также требуется в соответствии с http://php.net/manual/en/soap.requirements.php
С панели WHM
Установить SOAP 0.13.0
ПРЕДУПРЕЖДЕНИЕ: "груша/HTTP_Request" устарела в пользу "груши/HTTP_Request2"
установить ok: channel://pear.php.net/SOAP-0.13.0
Установите HTTP_Request2 (необязательно)
установить ok: channel://pear.php.net/HTTP_Request2
Перезапустить службы "HTTP-сервер (Apache)
Из команды оболочки
1.pear установить SOAP
2.reboot
Для Docker * добавьте эту строку:
RUN apt-get update && \
apt-get install -y libxml2-dev && \
docker-php-ext-install soap
*: Для изображений на основе Debian, т.е. не будет работать для альпийских вариантов.
Вам нужно наследовать класс nusoap.php
и поместить его в каталог проекта, вы можете загрузить его из Интернет.
Используйте этот код:
require_once('nusoap.php');
;extension=php_openssl.dll
если WSDL, к;extension=php_openssl.dll
вы пытаетесь обратиться, находится по протоколу https