php 'soapclient' - Неустранимая ошибка:класс «SoapClient» не найден




вашем сервере (8)

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

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


Answers

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


диагностики

Найдите в файле сценария следующее:

phpinfo();

Если вы не можете найти Soap Client который будет enabled так:

исправлять

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

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

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


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

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

С панели WHM

  1. Программное обеспечение »Установщики модулей» Пакет расширений и приложений PHP
  2. Установить SOAP 0.13.0

    ПРЕДУПРЕЖДЕНИЕ: «груша / HTTP_Request» устарела в пользу «груши / HTTP_Request2»

    установить ok: channel: //pear.php.net/SOAP-0.13.0

  3. Установите HTTP_Request2 (необязательно)

    установить ok: channel: //pear.php.net/HTTP_Request2

  4. Перезапустить службы »HTTP-сервер (Apache)

Из команды оболочки

1.pear install SOAP

2.reboot


Для AWS (RHEL):

sudo yum install php56-soap

(56 здесь 5,6 PHP версия - поместите свою версию здесь).


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

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

require_once('nusoap.php');

Мне пришлось бежать

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

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

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


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

Я предполагаю, что вы имеете в виду, что вы передаете файлы через HTTP. Хотя это не так плохо, как FTP, это не очень хорошая идея, если вы можете найти другой способ решения проблемы. HTTP (и, следовательно, компонентные программы) оптимизированы для передачи относительно небольших файлов по Интернету.

Хотя протокол поддерживает запросы диапазона от сервера к клиенту, он не допускает обратную операцию. Даже если громкость не повлияла на программное обеспечение на обоих концах, чем больше данных вы перемещаете, тем больше интервал, в течение которого вы можете потерять соединение. Но самая большая проблема заключается в том, что предостережение в последнем предложении.





php soap fatal-error