2

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

php -q www/download.php

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

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

我尝试过将命令的文件路径放在单引号中,如下所示:

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

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

任何帮助将不胜感激。

非常感谢

4

2 回答 2

0

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

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

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

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

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

于 2013-04-30T14:14:14.010 回答
0

你可以像这样传递参数

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

并在 cronfile.php 上获取参数

print_r($argv) 
于 2013-10-22T07:11:39.267 回答