我的PHP脚本中要改变什么来使cron作业工作

时间:2012-10-16 14:35:49

标签: php cron

好的,我已经看了几个小时的cron工作,检查了每个帖子,看了谷歌,但我只是不明白它是如何工作的。

我已经使用我的路径设置了一个cron作业1 * * * * /home/myuser/domains/mysite/public_html/live.php我也试过/home/myuser/public_html/live.php 似乎没什么用。

我是否必须在php文件中添加一些内容(live.php)?那是必须执行的代码。代码本身有效。

我知道你们都会认为我很懒,但我真的无法理解这一点。

3 个答案:

答案 0 :(得分:2)

*.php是常规脚本文件,与perl等任何其他脚本语言一样,需要运行解释器。因此,如果您想从命令行运行脚本,您可以调用解释器并将其作为参数提供给脚本文件,例如:

$ /usr/bin/php myscript.php

就是这样 - 它应该运行。

或者(如果使用linux / bsd)将添加为PHP脚本文件的第一行

#!/usr/bin/php -q

告诉shell,在哪里查找此脚本文件的解释器。请确保您的PHP位于/usr/bin文件夹中,因为这可能因发行版而异。您可以使用which进行检查,如下所示:

$ which php
/usr/bin/php

如果路径正确,您还需要在脚本文件上设置可执行位,这样您就可以尝试“启动它”:

chmod a+x myscript.php

这会让它的行为与任何其他应用一样,因此您可以通过这种方式启动它:

/full/path/to/myscript.php

或从当前文件夹:

./myscript.php

这就是这种方法。它应该运行。

所以你的crontab行会看起来(取决于选择的方法):

1 * * * * /full/path/to/myscript.php

1 * * * * /usr/bin/php -q /full/path/to/myscript.php

你应该使用“0”而不是“1”,因为1分钟的小时为零,即:

0 * * * * /usr/bin/php -q /full/path/to/myscript.php

修改

请注意cron 工作目录是用户的主目录。所以你需要考虑到这一点,这通常意味着使用绝对路径。或者,您可以使用cd <script working path> && /usr/bin/php -q /full/....

添加来电

答案 1 :(得分:1)

也许

1 * * * * php /home/myuser/domains/mysite/public_html/live.php

答案 2 :(得分:1)

您需要在命令行上使用chmod使脚本可执行。 此外,你需要这样的东西:

#!/usr/bin/php
<?php
// here comes your code
?>

这是告诉命令行如何执行文件所必需的。 注意:只有当您的php二进制文件位于/ usr / bin / php

时才会有效