好的,我已经看了几个小时的cron工作,检查了每个帖子,看了谷歌,但我只是不明白它是如何工作的。
我已经使用我的路径设置了一个cron作业1 * * * * /home/myuser/domains/mysite/public_html/live.php
我也试过/home/myuser/public_html/live.php
似乎没什么用。
我是否必须在php文件中添加一些内容(live.php
)?那是必须执行的代码。代码本身有效。
我知道你们都会认为我很懒,但我真的无法理解这一点。
答案 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
时才会有效