问题
How do I install Soap?
I got this error:
Fatal error: Class 'SoapClient' not found in /home/user/mysite.com/path/to/file.php on line 16
I am hosting my site in DreamHost and they don't support any third-party installation.
UPDATE:
I copied the php.ini file with this script: http://sxi.sabrextreme.com/dh-phpini
I am using an API from a website and it says something like this:
#######################################################################
## You need to enable the following extensions in your PHP.ini file ##
## php_openssl.dll ##
## php_soap.dll ##
#######################################################################
and here are the list of extensions my php.ini file has:
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
The problem is, the extension php_soap.dll is not found there.
回答1:
For Windows
Find
extension=php_soap.dll
orextension=soap
in php.ini and remove the commenting semicolon at the beginning of the line. Eventually check forsoap.ini
under the conf.d directory.Restart your server.
For 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
回答2:
In ubuntu to install php_soap
on PHP7 use below commands. Reference
sudo apt-get install php7.0-soap
sudo systemctl restart apache2.service
For older version of php use below command and restart apache.
apt-get install php-soap
回答3:
find this line in php.ini :
;extension=soap
then remove the semicolon ;
and restart Apache server
回答4:
Dreamhost now includes SoapClient in their PHP 5.3 builds. You can switch your version of php in the domain setup section of the dreamhost control panel.
回答5:
I had the same problem, there was no extension=php_soap.dll in my php.ini But this was because I had copied the php.ini from a old and previous php version (not a good idea). I found the dll in the ext directory so I just could put it myself into the php.ini extension=php_soap.dll After Apache restart all worked with soap :)
回答6:
How To for Linux Ubuntu...
sudo apt-get install php7.1-soap
Check if file php_soap.ao exists on "/usr/lib/php/20160303/"
ls /usr/lib/php/20160303/ | grep -i soap soap.so php_soap.so
sudo vi /etc/php/7.1/cli/php.ini
Change the line ;extension=php_soap.dll to extension=php_soap.so
sudo systemctl restart apache2
CHecking...
php -m | more
回答7:
They dont support it as in in they wont help you or be responsible for you hosing anything, but you can install custom extensions. To do so you need to first set up a local install of php 5, during that process you can compile in extensions you need or you can add them dynamically to the php.ini after the fact.
来源:https://stackoverflow.com/questions/2509143/how-do-i-install-soap-extension