235

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

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

4

14 回答 14

395

诊断

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

phpinfo();

如果你找不到这样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 的好建议。

于 2012-07-09T08:34:41.170 回答
175

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

sudo apt-get install php7.0-soap

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

sudo apt-get install php7.1-soap

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

sudo apt-get install php7.2-soap

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

sudo apt-get install php7.3-soap
于 2016-09-10T03:56:51.270 回答
21

对于 AWS (RHEL):

sudo yum install php56-soap

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

于 2015-08-22T19:09:21.170 回答
16

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

sudo apt-get install php5.6-soap
service php5.6-fpm restart
service apache2 restart

查看是否启用了 SOAP:

php -m

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

于 2016-09-19T13:41:52.570 回答
11

我不得不跑

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

以root身份重新启动apache。

那行得通!现在我的 phpinfo() 调用显示了 SOAP 部分。

于 2013-08-01T20:37:13.717 回答
9

我在 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
于 2018-01-30T14:46:32.647 回答
8

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

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

来自 WHM 面板

  1. 软件 » Module Installers » PHP Extensions & Applications Package
  2. 安装 SOAP 0.13.0

    警告:“pear/HTTP_Request”已被弃用,取而代之的是“pear/HTTP_Request2”

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

  3. 安装 HTTP_Request2(可选)

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

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

从 shell 命令

1.pear安装SOAP

2.重启

于 2013-10-15T18:12:52.560 回答
6

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

于 2020-02-06T20:27:47.570 回答
3

对于 Docker* 添加这一行:

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

*:对于基于 debian 的图像,即。不适用于高山变体。

于 2019-02-13T11:30:16.653 回答
1

对于 PHP 7.4 和 Docker,在 Dockerfile 中添加这一行:

RUN apt-get update && apt-get install -y \
libxml2-dev \

RUN docker-php-ext-install soap

重建映像并重新启动;)

于 2021-10-04T10:48:17.753 回答
0

你必须继承nusoap.php类并把它放在你的项目目录中,你可以从网上下载它。

使用此代码:

require_once('nusoap.php');
于 2013-05-22T09:04:43.077 回答
0

在 Centos 7.8 和 PHP 7.3 上

yum install php-soap
service httpd restart
于 2020-05-11T18:05:09.687 回答
0

对于 PHP 8:

sudo apt update
sudo apt-get install php8.0-soap
于 2020-11-28T16:21:50.807 回答
0

就我而言,Symfony 缓存导致了问题,运行后composer install问题就消失了。

于 2021-10-03T06:23:51.380 回答