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
我的 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