【问题标题】:Fatal error: Class 'SoapClient' not found致命错误:找不到类“SoapClient”
【发布时间】:2012-07-08 15:19:22
【问题描述】:

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

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

【问题讨论】:

  • 你确定你编辑了 Apache/bin/php.ini 并在那之后重新启动了 apache??
  • 谢谢。显然,我更改了另一个 php.ini 文件。我在 Apache 文件中找到了那个。
  • sudo apt-get install php7.0 给那些还没有安装的人
  • sudo apt-get install php-soap(加上service apache2 restart)在 Ubuntu 20.04.1 上为我解决了这个问题

标签: php soap fatal-error


【解决方案1】:

诊断

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

phpinfo();

如果你找不到 Soap Client 设置为 enabled 像这样:

修复

执行以下操作:

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

另一方面,如果这不能解决您的问题,您可能需要查看requirements for SOAP here。同样在评论部分,您可以找到有关连接到 https 的好建议。

【讨论】:

  • 不要忘记取消注释这一行:;extension=php_openssl.dll 如果您尝试访问的 WSDL 在 https 协议下
  • 我正在使用 xamp,只是取消注释 extension=soap 就可以了。
  • sudo apt-get install php7.0-soap 对于那些还没有安装它的人
  • 对我来说,SoapClient 类仍然没有找到。我在 phpinfo() 中看到它已启用,扩展已启用,openssl 也已启用,一切正常,但找不到该类。我使用 Wampserver 3.0 和 PHP 5.6 并重新启动了 Apache,但没有解决问题。请帮忙。
  • 如果我在 Ubuntu 20.04.01 上遵循上述评论 (apt-get install php7.0-soap),我会收到此错误:无法找到包 php7.0-soap。运行apt-get install php-soap 解决了这个问题并为此操作系统安装了适当的soap 版本(在我的例子中是7.4)。
【解决方案2】:

要在 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

【讨论】:

  • 另外一定要运行 sudo service apache2 reload
  • 在我的例子中是sudo apt-get install php-soap
  • 我已经升级到 php7,忘记重新安装 php70w-soap(我总是完全删除旧版本的 PHP)
  • 如果我想安装 php7.3-soap 怎么办:-)?我迷路了。
  • @chris 你试过了吗:sudo apt-get install php7.2-soap
【解决方案3】:

对于 AWS (RHEL):

sudo yum install php56-soap

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

【讨论】:

  • 这可能是sudo yum install php56w-soap!我忘记了 w,并且安装了它,但仍然无法正常工作。花了一段时间才弄明白,但现在可以了。
  • 对我来说是 sudo apt-get install php5.6-soap
  • 不需要版本,只需要php-soap
  • 我不得不使用 sudo yum install php56-php-soap。我正在使用多版本 PHP,默认为 php7.2,通过 php-fpm 配置 php5.6。
【解决方案4】:

要在 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。)

【讨论】:

    【解决方案5】:

    我不得不跑

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

    以 root 身份重新启动 apache。

    成功了!现在我的 phpinfo() 调用显示了 SOAP 部分。

    【讨论】:

    • reboot 应该提到它的 apache 重启,而不是服务器重启。
    【解决方案6】:

    我在 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
    

    【讨论】:

      【解决方案7】:

      找不到phpinfo() 中的SOAP 部分,所以我必须安装它。

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

      来自 WHM 面板

      1. 软件 » 模块安装程序 » PHP 扩展和应用程序包
      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.重启

      【讨论】:

      • WHM 的 EasyApache 界面在详尽选项列表中还有一个启用 Soap 的选项。
      【解决方案8】:

      XAMPP 用户,打开位于C:/xampp/php 中的php.ini 文件,并从extension=soap 的开头删除;。然后重启 Apache 就可以了!

      【讨论】:

        【解决方案9】:

        对于 Docker* 添加这一行:

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

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

        【讨论】:

          【解决方案10】:

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

          使用此代码:

          require_once('nusoap.php');
          

          【讨论】:

          • NuSoap 创建一个 Web 服务(服务器)。最初的问题是使用 WebService(客户端),因此 NuSoap 与上述问题之间没有任何关系
          • 也许你在使用 nusoap 的时候在想什么,这就是你巩固这一点的原因。
          • “互联网。”
          【解决方案11】:

          在 Centos 7.8 和 PHP 7.3 上

          yum install php-soap
          service httpd restart
          

          【讨论】:

            【解决方案12】:

            对于 PHP 8:

            sudo apt update
            sudo apt-get install php8.0-soap
            

            【讨论】:

              【解决方案13】:

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

              【讨论】:

                【解决方案14】:

                适用于 PHP 7.4 和 Docker 在 Dockerfile 中添加这一行:

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

                重建映像并重新启动;)

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2011-10-09
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-08-05
                  • 1970-01-01
                  • 2014-10-03
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多