Неустранимая ошибка: класс "SoapClient" не найден

Я пытаюсь использовать простой пример веб-службы, и я получаю эту ошибку, хотя я раскомментировал extension=php_soap.dll в файле php.ini:

Неустранимая ошибка: Класс "SoapClient" не найден в C:\Program Files (x86)\EasyPHP-5.3.9\www\server.php в строке 2

Ответ 1

Диагностика

Посмотрите следующее в файле script

phpinfo();

Если вы не можете найти Soap Client для параметра enabled следующим образом: the way soap should appear in phpinfo()

Fix

Выполните следующие действия:

  • Найдите php.ini в папке bin apache, I.e Apache/bin/php.ini
  • Удалите ; с начала extension=php_soap.dll
  • Перезапустите сервер Apache
  • Повторно просмотрите свой phpinfo(); и проверьте, видите ли вы аналогичную картинку выше.
  • Если вы это сделаете, проблема решена!

С другой стороны, если это не решит вашу проблему, вы можете проверить требования для SOAP здесь. Также в разделе комментариев вы можете найти хороший совет по подключению к https.

Ответ 2

Чтобы установить 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

Ответ 3

Для AWS (RHEL):

sudo yum install php56-soap

(56 здесь 5.6 PHP версия - введите свою версию здесь).

Ответ 4

Чтобы установить 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 между возвращенным текстом.)

Ответ 5

Мне пришлось запускать

php-config --configure-options --enable-soap 

как root и перезапустите apache.

Это сработало! Теперь мой вызов phpinfo() показывает раздел SOAP.

Ответ 6

Я не могу найти раздел SOAP в phpinfo(), поэтому мне пришлось его установить.

Для информации для расширения SOAP требуется расширение libxml PHP. Это означает, что передача в --enable-libxml также требуется в соответствии с http://php.net/manual/en/soap.requirements.php

С панели WHM

  • Программное обеспечение "Установщики модулей" Пакет расширений и приложений PHP
  • Установить 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

Ответ 7

Я решил эту проблему на 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

Ответ 8

Для Docker * добавьте эту строку:

RUN apt-get update && \
    apt-get install -y libxml2-dev && \
    docker-php-ext-install soap

*: Для изображений на основе Debian, т.е. не будет работать для альпийских вариантов.

Ответ 9

Вам нужно наследовать класс nusoap.php и поместить его в каталог проекта, вы можете загрузить его из Интернет.

Используйте этот код:

require_once('nusoap.php');