Crontab未正确运行PHP脚本
我在crontab中设置了以下命令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脚本运行良好。我一开始就试过有根和无根 您应该使用完整路
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:)