我使用以下命令成功运行 Cron 作业:
php -q www/download.php
但是,如果添加查询字符串,则作业无法运行,如下所示:
php -q www/download.php?multiclient=true
我尝试过将命令的文件路径放在单引号中,但没有成功:
php -q 'www/download.php?multiclient=true'
据我所知,将查询字符串放在 Cron 作业中是可以接受的,但在这种情况下它不起作用。
非常感谢任何帮助。
非常感谢
答案 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)