我有一个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 );
任何人都可以提供帮助吗?
答案 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 。