Cron(PHP)运行不正常

时间:2014-12-27 15:08:07

标签: php cron crontab

我有一个cron

0 21 * * * php /var/www/html/site/cron.php/batch 1>>/dev/null 2>&1

然而它无效。

当我尝试

php /var/www/html/site/cron.php/batch

/usr/bin/php /var/www/html/site/cron.php/batch

它说,

"无法打开输入文件:"

我知道,cron.php正在考虑将cron.php文件作为文件夹并尝试打开它。所以给我错误。

也试过

* * * * * nobody wget -O http://example.com/cron.php/batch

P.S:http://example.com/cron.php/batch在浏览器中访问时有效。

更新: 我对该文件有755的权限。获得"无法打开输入文件:"消息,即使我认为文件权限是错误。

我仍然面临这个问题

1 个答案:

答案 0 :(得分:3)

从命令行运行PHP脚本时,不能在脚本名称后使用其他路径名元素。允许将参数放入路径名是Web服务器功能,它不适用于普通路径名。

php /var/www/html/site/cron.php batch

然后,该脚本应该从batch获取$argv[1]参数,而不是$_SERVER['PATH_INFO']

也许在脚本开头你可以做到:

if (!isset($_SERVER['PATH_INFO']) && isset($argv[1])) {
    $_SERVER['PATH_INFO'] = '/' . argv[1];
}