crontab 没有 运行 PHP 脚本正常

Crontab not running PHP scripts properly

我的 crontab 中设置了以下命令

0 * * * * root cd /home/domain/public_html/webcrawler && php cron1.php
40 * * * * root cd /home/domain/public_html/webcrawler && php cron2.php

问题是他们不是 运行ning。我设置的命令是否有任何明显的错误? php 脚本 运行 在 运行 从 ssh 或在浏览器中加载时正常。一开始我尝试过使用 root 和不使用 root。

您应该使用完整路径调用 PHP cron 作业(请注意,您的 PHP 可能位于不同的位置)

0 * * * * /usr/bin/php /path/to/your/script.php

&& 改成 ; 读起来像

0 * * * * root cd /home/domain/public_html/webcrawler; php cron1.php

或者从绝对路径执行

0 * * * * root php /home/domain/public_html/webcrawler/cron1.php

当使用绝对路径时,您可以通过执行

强制您的 cron 脚本的当前工作目录
chdir(__DIR__); //or chdir(dirname(__FILE__));

您还可以将 PHP shebang 添加到 cron.php 文件的顶部(您的 php 二进制文件可能有不同的路径)

#!/usr/bin/php

http://php.net/manual/en/features.commandline.usage.php

然后您可以执行脚本而无需使用

引用 php 二进制位置
0 * * * * root /home/domain/public_html/webcrawler/cron1.php