致命错误:找不到类'SoapClient'

Fig*_*gör 185 php soap fatal-error

我正在尝试一个简单的Web服务示例,即使我extension=php_soap.dllphp.ini文件中取消注释,我也会收到此错误:

致命错误:在第2行的C:\ Program Files(x86)\ EasyPHP-5.3.9\www\server.php中找不到类'SoapClient'

Mor*_*lde 321

诊断

在脚本文件中查找以下内容

phpinfo();
Run Code Online (Sandbox Code Playgroud)

如果你找不到这样的Soap Client设置enabled: 肥皂应该出现在phpinfo()的方式

固定

请执行下列操作:

  1. 找到php.ini您的apache bin文件夹,即Apache/bin/php.ini
  2. ;从头开始删除extension=php_soap.dll
  3. 重启Apache服务器
  4. phpinfo();再次查找你,看看你是否看到了与上面相似的图片
  5. 如果你这样做,问题就解决了!

另一方面,如果这不能解决您的问题,您可能需要在此处检查SOAP要求.同样在评论部分,您可以找到有关连接到https的好建议.

  • 不要忘记也取消注释这一行:`; extension = php_openssl.dll`如果你想要访问的WSDL是在https协议下 (12认同)
  • 我正在使用xamp,只是取消注释`extension = soap`就可以了。 (6认同)
  • sudo apt-get install php7.0-soap为尚未安装的人 (3认同)
  • 对我来说,仍然找不到“SoapClient”类。我看到它在 phpinfo() 中启用,扩展已启用,openssl 也已启用,一切正常,但找不到该类。我使用 Wampserver 3.0 和 PHP 5.6,并重新启动了 Apache,但没有解决问题。请帮忙。 (2认同)
  • 如果我在 Ubuntu 20.04.01 上遵循上述注释(`apt-get install php7.0-soap`),我会收到此错误:无法找到软件包 php7.0-soap。运行 apt-get install php-soap 可以修复该问题并安装适合该操作系统的肥皂版本(在我的例子中为 7.4)。 (2认同)

Nah*_*hid 135

要在PHP-7中安装SOAP,请在Ubuntu终端中运行以下命令:

sudo apt-get install php7.0-soap
Run Code Online (Sandbox Code Playgroud)

要在PHP-7.1中安装SOAP,请在Ubuntu终端中运行以下命令:

sudo apt-get install php7.1-soap
Run Code Online (Sandbox Code Playgroud)

要在PHP-7.2中安装SOAP,请在Ubuntu终端中运行以下命令:

sudo apt-get install php7.2-soap
Run Code Online (Sandbox Code Playgroud)

  • 另外一定要运行sudo service apache2 reload (11认同)
  • 在我的情况下,它是'sudo apt-get install php-soap` (8认同)

OZ_*_*OZ_ 21

对于AWS(RHEL):

sudo yum install php56-soap
Run Code Online (Sandbox Code Playgroud)

(56这里是5.6 PHP版本 - 把你的版本放在这里).

  • 这可能是`sudo yum install php56w-soap`!我忘记了w,这安装,但它仍然无法正常工作.花了一段时间来解决这个问题,但现在它有效. (3认同)
  • 不需要版本,只要 php-soap (2认同)

Jas*_*net 14

要在PHP5.6中安装SOAP,请在Ubuntu 14.04终端中运行以下命令:

sudo apt-get install php5.6-soap
service php5.6-fpm restart
service apache2 restart
Run Code Online (Sandbox Code Playgroud)

查看SOAP是否已启用:

php -m
Run Code Online (Sandbox Code Playgroud)

(您应该在返回的文本之间看到SOAP.)


May*_*You 11

我不得不跑

php-config --configure-options --enable-soap 
Run Code Online (Sandbox Code Playgroud)

以root身份重启apache.

那很有效!现在我的phpinfo()调用显示了SOAP部分.

  • `reboot` 应该提到它的 apache 重启,而不是服务器重启。 (2认同)

Nan*_*mar 8

我在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
Run Code Online (Sandbox Code Playgroud)


Raf*_*shi 7

找不到这个SOAP部分,phpinfo()所以我不得不安装它.

有关信息,SOAP扩展需要libxmlPHP扩展.这意味着--enable-libxml根据http://php.net/manual/en/soap.requirements.php也需要传入

从WHM面板

  1. 软件»模块安装程序»PHP扩展和应用程序包
  2. 安装SOAP 0.13.0

    警告:不推荐使用"pear/HTTP_Request",而选择"pear/HTTP_Request2"

    安装ok:channel://pear.php.net/SOAP-0.13.0

  3. 安装HTTP_Request2(可选)

    安装ok:channel://pear.php.net/HTTP_Request2

  4. 重启服务»HTTP服务器(Apache)

从shell命令

1.pear安装SOAP

2.reboot


Att*_*lop 6

对于 Docker* 添加以下行:

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

Run Code Online (Sandbox Code Playgroud)

*:对于基于 Debian 的映像,即。不适用于高山变种。


Jak*_*mec 6

对于XAMPP的用户,打开php.ini文件位于C:/xampp/php并删除;从年初extension=soap。然后重新启动Apache,就是这样!