Как установить расширение мыла? - PullRequest
45 голосов
/ 24 марта 2010

Как мне установить мыло?

Я получил эту ошибку:

Неустранимая ошибка: класс 'SoapClient' не найден в /home/user/mysite.com/path/to/file.php в строке 16

Я размещаю свой сайт в DreamHost, и они не поддерживают стороннюю установку.

UPDATE:

Я скопировал файл php.ini с помощью этого скрипта: http://sxi.sabrextreme.com/dh-phpini

Я использую API с веб-сайта, и он говорит что-то вроде этого:

#######################################################################
## You need to enable the following extensions in your PHP.ini file  ##
## php_openssl.dll          ##
## php_soap.dll             ##
#######################################################################

и вот список расширений, которые есть в моем файле php.ini:

extension=php_bz2.dll
;extension=php_cpdf.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_dbx.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
;extension=php_mysql.dll
;extension=php_oci8.dll
**extension=php_openssl.dll**
;extension=php_oracle.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_sockets.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_w32api.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_yaz.dll
;extension=php_zip.dll

Проблема в том, что расширение php_soap.dll там не найдено.

Ответы [ 7 ]

86 голосов
/ 14 марта 2014

для Windows

  1. Найдите extension=php_soap.dll или extension=soap в php.ini и удалите точку с запятой в начале строки. В конце концов проверьте наличие soap.ini в каталоге conf.d .

  2. Перезагрузите сервер.

Для Linux

Ubuntu:

PHP7

Apache

sudo apt-get install php7.0-soap 
sudo systemctl restart apache2

PHP5

sudo apt-get install php-soap
sudo systemctl restart apache2

OpenSuse:

PHP7

Apache

sudo zypper in php7-soap
sudo systemctl restart apache2

Nginx

sudo zypper in php7-soap
sudo systemctl restart nginx
47 голосов
/ 07 января 2017

В Ubuntu для установки php_soap на PHP7 используйте следующие команды. Ссылки

sudo apt-get install php7.0-soap
sudo systemctl restart apache2.service

Для старой версии php используйте команду ниже и перезапустите apache.

apt-get install php-soap
4 голосов
/ 07 августа 2018

найдите эту строку в php.ini:

;extension=soap

затем удалите точку с запятой ; и перезапустите сервер Apache

1 голос
/ 01 сентября 2015

У меня была такая же проблема, в моем php.ini не было расширения = php_soap.dll Но это потому, что я скопировал php.ini из старой и предыдущей версии php (не очень хорошая идея). Я нашел dll в каталоге ext, чтобы я мог сам поместить его в php.ini расширение = php_soap.dll После перезагрузки Apache все работало с мылом:)

1 голос
/ 03 марта 2011

Dreamhost теперь включает SoapClient в свои сборки PHP 5.3. Вы можете переключить свою версию php в разделе настройки домена панели управления Dreamhost.

0 голосов
/ 13 мая 2019

How To для Linux Ubuntu ...

sudo apt-get install php7.1-soap

Проверьте, существует ли файл php_soap.ao в "/ usr / lib / php / 20160303 /"

ls / usr / lib / php / 20160303 / | grep -i мыло soap.so php_soap.so

sudo vi /etc/php/7.1/cli/php.ini

Изменить строку; extension = php_soap.dll в расширение = php_soap.so

sudo systemctl restart apache2

Проверяю ...

php -m | более

0 голосов
/ 24 марта 2010

Они не поддерживают это, так как они не помогут вам и не будут нести ответственность за то, что вы что-то теряете, но вы можете установить собственные расширения. Для этого вам необходимо сначала настроить локальную установку php 5 , во время этого процесса вы можете скомпилировать нужные вам расширения или добавить их динамически в php.ini по факту.

...