[英]PHP Error Class 'SoapClient' not found
我试图在我们的服务器上安装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;
}
任何帮助将不胜感激。
看来您尚未在服务器上安装php-soap软件包。 类型
phpinfo();
在您的代码中,并检查“ Soap Client”是否已启用。 如果没有,我不知道您的发行和软件包管理器,但是这是我使用的Fedora的代码:
$ yum install php-soap
我建议与您的程序员或您身边的系统管理员一起执行此操作,而您永远不知道会发生什么。 在进行任何安装之前,备份也很有用!
您将需要添加(或删除任何注释字符)
extension=soap.so
到php.ini
文件,然后重新启动Web服务器。
如果找不到php.ini
文件,请创建一个包含以下内容的页面:
<?php phpinfo();
并在浏览器中加载该文件。
在某些系统上,此设置可能实际上不存在于php.ini
。 例如,如果您使用的是Zend Server,则该设置将位于/usr/local/zend/etc/conf.d/soap.ini
。
它已经发布在这里
请执行下列操作:
Do the following: Locate php.ini in your apache bin folder, I.e Apache/bin/php.ini Remove the ; from the beginning of extension=php_soap.dll Restart your Apache server Look up your phpinfo(); again and check if you see a similar picture to the one above If you do, problem solved!
因此,我们恢复了旧版本的PHP,并重新启用了SOAP。 显然,这就是问题所在,不确定为什么在新版本的PHP中不起作用。
再次感谢您的所有帮助。 这是一个很棒的社区。
启用SOAP扩展,在composer.json中要求它,如下所示:
{
"require": {
"ext-soap": "*"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.