我有一个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的权限。获得"无法打开输入文件:"消息,即使我认为文件权限是错误。
我仍然面临这个问题
答案 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];
}