Crontab未正确运行PHP脚本

Crontab未正确运行PHP脚本,php,crontab,Php,Crontab,我在crontab中设置了以下命令 0 * * * * root cd /home/domain/public_html/webcrawler && php cron1.php 40 * * * * root cd /home/domain/public_html/webcrawler && php cron2.php 问题是他们没有跑。我设置的命令中是否有明显的错误?从ssh运行或加载到浏览器中时,php脚本运行良好。我一开始就试过有根和无根 您应该使用完整路

我在crontab中设置了以下命令

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

问题是他们没有跑。我设置的命令中是否有明显的错误?从ssh运行或加载到浏览器中时,php脚本运行良好。我一开始就试过有根和无根

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


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


和&
更改为
读起来像

0 * * * * root cd /home/domain/public_html/webcrawler; php cron1.php
或者从绝对路径执行它

0 * * * * root php /home/domain/public_html/webcrawler/cron1.php
使用绝对路径时,可以通过执行

chdir(__DIR__); //or chdir(dirname(__FILE__));
您还可以将PHP shebang添加到cron.PHP文件的顶部(您的PHP二进制文件可能有不同的路径)

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

0 * * * * root /home/domain/public_html/webcrawler/cron1.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二进制文件可能有不同的路径)

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

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

尝试使用PHP的完整路径。PHP可执行文件可能不在运行cron的用户的路径中。能否尝试绝对路径引用PHP/usr/bin/php cron1.php曾经想过,但是一个简单的
cd/some/path/other/than/current&&ls
会显示我当前文件夹的文件列表,因此本质上你是从默认用户目录调用php脚本是的,这是我在使用php CRON脚本时遇到的最常见问题。还要确保PHP文件中的所有内容都使用绝对路径引用。注*关于@Machavity的答案,PHP可能位于系统上的不同位置。请尝试使用PHP的完整路径。PHP可执行文件可能不在运行cron的用户的路径中。能否尝试绝对路径引用PHP/usr/bin/php cron1.php曾经想过,但是一个简单的
cd/some/path/other/than/current&&ls
会显示我当前文件夹的文件列表,因此本质上你是从默认用户目录调用php脚本是的,这是我在使用php CRON脚本时遇到的最常见问题。还要确保PHP文件中的所有内容都使用绝对路径引用。注*关于@Machavity的答案,PHP可能位于系统上的不同位置。通常,
cd
会更改您的目录。当与
&&
结合使用时,以下命令将从
cd
'd目录运行。不要忘记引用PHP的路径/usr/bin/php:)通常
cd
会更改您的目录。当与
&&
结合使用时,以下命令将从
cd
'd目录运行。不要忘记引用PHP的路径/usr/bin/php:)