如何安装肥皂?
我收到了这个错误:
致命错误:在第 16 行的 /home/user/mysite.com/path/to/file.php 中找不到类“SoapClient”
我在 DreamHost 中托管我的网站,他们不支持任何第三方安装。
更新:
我用这个脚本复制了 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。
对于 Windows
在 php.ini 中找到 extension=php_soap.dll 或 extension=soap 并删除行首的注释分号。最终检查 conf.d 目录下的soap.ini。重新启动您的服务器。
对于 Linux
Ubuntu:
PHP7
阿帕奇
sudo apt-get install php7.0-soap
sudo systemctl restart apache2
PHP5
sudo apt-get install php-soap
sudo systemctl restart apache2
OpenSuse:
PHP7
阿帕奇
sudo zypper in php7-soap
sudo systemctl restart apache2
Nginx
sudo zypper in php7-soap
sudo systemctl restart nginx
在 ubuntu 中在 PHP7 上安装 php_soap
使用以下命令。 Reference
sudo apt-get install php7.0-soap
sudo systemctl restart apache2.service
对于旧版本的 php,请使用以下命令并重新启动 apache。
apt-get install php-soap
在 php.ini 中找到这一行:
;extension=soap
然后删除分号 ;
并重新启动 Apache 服务器
请按照以下步骤操作:
1) Locate php.ini in your apache bin folder, I.e Apache/bin/php.ini
2) Remove the ; from the beginning of extension=php_soap.dll
3) Restart your Apache server (by using :
# /etc/init.d/apache2 restart OR
$ sudo /etc/init.d/apache2 restart OR
$ sudo service apache2 restart)
4) Look up your phpinfo();
you may check here as well,if this does not solve your issue:
https://www.php.net/manual/en/soap.requirements.php
在带有 php7.3 的 Ubuntu 中:
sudo apt install php7.3-soap
sudo service apache2 restart
我有同样的问题,我的 php.ini 中没有 extension=php_soap.dll 但这是因为我从旧的和以前的 php 版本中复制了 php.ini(不是一个好主意)。我在 ext 目录中找到了 dll,所以我可以自己将其放入 php.ini extension=php_soap.dll Apache 重新启动后,一切都可以使用soap :)
如何为 Linux Ubuntu...
sudo apt-get install php7.1-soap
检查文件 php_soap.ao
是否存在于 /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
换行:
;extension=php_soap.dll
至
extension=php_soap.so
sudo systemctl restart apache2
检查...
php -m | more
Dreamhost 现在在其 PHP 5.3 构建中包含 SoapClient。您可以在 Dreamhost 控制面板的域设置部分切换您的 php 版本。
他们不支持它,因为他们不会帮助您或负责您冲洗任何东西,但您可以安装自定义扩展。为此,您需要首先set up a local install of php 5,在此过程中,您可以编译所需的扩展,也可以事后将它们动态添加到 php.ini。
对于 Ubuntu+php 5.6+nginx 我使用
sudo apt install php5.6-soap
sudo systemctl restart nginx
sudo systemctl restart php5.6-fpm.service
只有在那之后它才开始工作。
不定期副业成功案例分享
sudo zypper install php7.0-soap
;但是,需要提供正确的存储库(根据 en.opensuse.org/Package_repositories 的sudo zypper repos
/sudo zypper addrepo
)才能检索 PHP 扩展。php.ini
中会出现extension=soap
而不是extension=php_soap.dll
。只需取消注释,它会在重新启动 apache 后工作