【问题标题】:PHP Error Class 'SoapClient' not found未找到 PHP 错误类“SoapClient”
【发布时间】:2012-07-19 15:00:02
【问题描述】:

我试图在我们的服务器上安装 Wordpress 进行测试,但为了做到这一点,我必须将我们当前的 PHP 版本升级到 5.3。我升级了我们的 PHP,现在我发现我们的 Purolator 运输模块不再工作。根据我们的主机支持,“purolator.php”文件缺少新版本 PHP 所需的数据。不幸的是,我无法恢复我们的 PHP 版本,而且我们的程序员不在了。

这是我从我们的网站托管支持团队获得的错误消息:

tail /var/www/vhosts/phantomcables.com/statistics/logs/error_log -f 
[Thu Jul 19 08:34:28 2012] [error] [client 70.51.168.201] PHP Fatal 
error:  Class 'SoapClient' not found in 
/var/www/vhosts/phantomcables.com/httpdocs/shippings/purolator.php on line 
49, referer: https://phantomcables.com/index.php?dispatch=checkout.cart 

这些是第 40 到 72 行:

function createPWSSOAPClient()
{
    /** Purpose : Creates a SOAP Client in Non-WSDL mode with the appropriate authentication and 
    *           header information
    **/
    //Set the parameters for the Non-WSDL mode SOAP communication with your Development/Production credentials
    //echo DIR_SHIPPING_FILES."estimatingservice.wsdl";

    $url = "https://webservices.purolator.com/PWS/V1/Estimating/EstimatingService.asmx";
    $client = new SoapClient( DIR_SHIPPING_FILES."estimatingservice.wsdl", 
                              array (
                                        'trace'         =>  true,
                                        'location'      =>  $url,
                                        'uri'           =>  "http://purolator.com/pws/datatypes/v1",
                                        'login'         =>  PRODUCTION_KEY,
                                        'password'      =>  PRODUCTION_PASS
                                    )
                            );

    //Define the SOAP Envelope Headers
    $headers[] = new SoapHeader ( 'http://purolator.com/pws/datatypes/v1', 'RequestContext', 
                                  array (
                                            'Version'           =>  '1.0',
                                            'Language'          =>  'en',
                                            'GroupID'           =>  'xxx',
                                            'RequestReference'  =>  'Rating Example'
                                       )
                                ); 
    //Apply the SOAP Header to your client                            
    $client->__setSoapHeaders($headers);

    return $client;
}

任何帮助将不胜感激。

【问题讨论】:

  • 这是一个非常具体的错误,SoapClient 类未定义 - 您/您的主机可能在升级时删除或禁用了它。
  • 你有什么配置文件,或者叫自动加载的东西吗?
  • 谢谢 nickb,我会尝试致电我们的支持团队,看看他们是否可以重新启用或重新安装它。
  • 我很抱歉 kevinmajor1,我在哪里可以找到这个配置文件。我确实有一个 config.php,但我相信它是我们运行网站的 CS-Cart 软件的一部分。

标签: php cs-cart


【解决方案1】:

您的服务器上似乎没有安装 php-soap 软件包。 类型

phpinfo();

在您的代码中检查“Soap Client”是否已启用。 如果不是,我不知道你的发行版和包管理器,但这里是我使用的 Fedora 代码:

$ yum install php-soap

我建议你和你的程序员或你身边的系统管理员一起做,你永远不知道会发生什么。在安装之前备份也很有用!

【讨论】:

  • 所以我刚刚与我们的网络主机支持团队通了电话。他们确实注意到我们的网站上没有启用 SOAP,不幸的是,她启用了它并将“PHP 支持以运行方式”从 Apache 模块更改为 FastCGI 应用程序。我仍然遇到同样的错误。
  • 感谢各位的帮助。我非常感谢大家的意见。
  • 所以我们恢复到旧版本的 PHP,并重新启用 SOAP。显然这就是问题所在,不知道为什么这不适用于较新版本的 PHP。再次感谢您的所有帮助。这是一个很棒的社区。​​span>
  • 对于那些在 CentOS 上没有正确 repos 的人:谷歌 epel 和 remi repos,然后添加它们。
  • 我为设置变量重新启动了my computer
【解决方案2】:

您需要添加(或删除之前的任何注释字符)

extension=soap.so

到您的php.ini 文件,然后重新启动网络服务器。

如果您在查找 php.ini 文件时遇到问题,请创建一个包含以下内容的页面:

<?php phpinfo();

并在浏览器中加载该文件。

在某些系统上,此设置实际上可能不在php.ini 中。例如,如果您使用 Zend Server,则该设置将位于 /usr/local/zend/etc/conf.d/soap.ini

【讨论】:

  • 所以我们恢复到旧版本的 PHP,并重新启用 SOAP。显然这就是问题所在,不知道为什么这不适用于较新版本的 PHP。再次感谢您的所有帮助。这是一个很棒的社区。​​span>
【解决方案3】:

所以我们恢复到旧版本的 PHP,并重新启用了 SOAP。显然这就是问题所在,不知道为什么这不适用于较新版本的 PHP。

再次感谢您的所有帮助。这是一个很棒的社区。​​p>

【讨论】:

    【解决方案4】:

    已经发布here

    执行以下操作:

    请执行下列操作: 在您的 apache bin 文件夹中找到 php.ini,即 Apache/bin/php.ini 去除那个 ;从 extension=php_soap.dll 开始 重新启动 Apache 服务器 查找您的 phpinfo();再次检查您是否看到与上一张相似的图片 如果你这样做了,问题就解决了!

    【讨论】:

      【解决方案5】:

      启用 SOAP 扩展,像这样在 composer.json 中要求它:

      {
        "require": {
          "ext-soap": "*"
        }
      }
      

      【讨论】:

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