与soapclient包含在PHP中的cron作业问题

时间:2009-09-01 19:34:07

标签: php soap cron

我有一个PHP脚本,需要每天运行它。这个脚本有一个soapclient,如果我直接使用浏览器作为脚本运行它,它可以正常工作。但是,如果我将其设置为cron作业,则会出现一些致命错误。

脚本非常简单,如“crontest.php”

<?php 

$mage_url = 'http://******.com/api/?wsdl'; 
$mage_user = '*****'; 
$mage_api_key = '******';

$soap = new SoapClient( $mage_url ); 
echo "success";

exit;
?>

我设置的cronjob是

0 8 * * * /usr/bin/php /home/duan/public_html/scripts/crontest.php

它给出的错误是

致命错误 /home/duan/public_html/scripts/crontest.php

中找不到“SoapClient”类

如果我删除行

,它可以正常工作
$soap = new SoapClient( $mage_url );

任何人都可以提供帮助吗?

2 个答案:

答案 0 :(得分:0)

不要通过直接调用php来运行脚本,而是尝试使用lynx让服务器通过http请求加载页面:

/usr/bin/lynx -source http://example.com/cron.php

这会导致脚本的运行方式与您通过Web浏览器自己查看脚本时的运行方式相同。首先在命令行上测试它,然后对于你的cron作业,你可以根据需要将输出转移到/ dev / null或日志:

/usr/bin/lynx -source http://example.com/cron.php > /dev/null 2>&1

答案 1 :(得分:0)

您可能需要包含文件nusoap.php或加载php库。它仅包含在5.0.1版之后,但服务器可能不会使用它(特别是如果您使用具有相同类名的nusoap)。

您应该搜索网站代码并查找 nusoap.php dl('SoapClient')等命令(dl加载php库)。

如果它不是nusoap,你可以尝试命令 php -m ,看看是否有SoapClient。如果没有尝试 php -v