查询字符串阻止Cron作业运行

时间:2013-04-30 12:58:30

标签: apache cron

我使用以下命令成功运行 Cron 作业:

php -q www/download.php

但是,如果添加查询字符串,则作业无法运行,如下所示:

php -q www/download.php?multiclient=true

我尝试过将命令的文件路径放在单引号中,但没有成功:

php -q 'www/download.php?multiclient=true'

据我所知,将查询字符串放在 Cron 作业中是可以接受的,但在这种情况下它不起作用。

非常感谢任何帮助。

非常感谢

2 个答案:

答案 0 :(得分:0)

您不能指定像这样的查询字符串。

在这种情况下,解释器会查找文件文件“download.php?multiclient = true”,它不会将问号后面的部分作为查询字符串进行插值。

一个简单的解决方案是更改您的cronjob以生成http请求,而不是尝试直接调用interperter,如:

wget -qO - http://your.sever/download.php?multiclient=true

或者您可以尝试使用环境变量传递参数,这是使用GGI时参数的传递方式。我没有尝试过此操作,但您可能需要使用php-cgi代替php,有关详细信息,请参阅this question

答案 1 :(得分:0)

你可以像这样传递参数

php <path to cron file>/cronfile.php param1 param2

并在cronfile.php上获取参数

print_r($argv)