使用CPanel在cron作业中运行PHP文件

我只是试图在CPanel中使用cron作业运行PHP脚本 – 这是正确的语法:

/usr/bin/php -q /home/username/public_html/cron/cron.php >/dev/null 

我没有收到任何电子邮件通知,说明一个cron已经完成,我需要做任何具体的PHP文件?

在crontab系统中:

  • /usr/bin/php是php的二进制path(不同于某些系统,例如:freebsd /usr/local/bin/php ,linux: /usr/bin/php
  • /home/username/public_html/cron/cron.php应该是你的PHP脚本path
  • /dev/null应该是cron的输出,例如: /home/username/stdoutx.txt

所以你可以通过查看cron output /home/username/stdoutx.txt来监视你的cron

我用这个命令来激活cron作业。

 /usr/bin/php -q /home/username/public_html/yourfilename.php 

在godaddy服务器上,它的工作正常。

>/dev/null停止发送邮件的cron。

实际上在我看来,最好是让php脚本本身关心它的日志logging,而不是仅仅输出一些东西给cron

这是方式:

 /usr/bin/php -q /home/username/public_html/yourfilename.php >/dev/null 

这是最简单的方法:

php -f /home/your_username/public_html/script.php

如果要将脚本输出logging到文件中,请将其添加到命令的末尾:

>> /home/your_username/logs/someFile.txt 2>&1

这cron线使用cpanel在hostgator VPS上为我工作。

 /usr/bin/php -q /home/username/public_html/scriptname.php 

我在CPanel上使用/ usr / bin / php时遇到了问题,因为它被编译为“cgi-fcgi”二进制文件而不是“cli”。 尝试使用/ usr / local / bin / php,因为它首先在path中,只需使用'php':

 php /path/to/script.php 

如果要将脚本作为可执行文件运行,请为其提供+ x perms,并使用以下内容作为脚本的第一行:

 #!/usr/bin/env php 

我希望你的问题是与path和PHP二进制以及。 如果您按照旧的答案修复了path,请在运行cron作业时使用php-cli而不是php命令。

这可能是php_sapi_name()不返回cli 。 它的其他东西如cgi-fcgi

/usr/bin/php-cli -q /home/username/public_html/cron/cron.php >/dev/null

我希望这会有所帮助。

这工作正常,还发送电子邮件:

/ usr / bin / php /home/xxYourUserNamexx/public_html/xxYourFolderxx/xxcronfile.php

以下两个命令也可以正常工作,但不要发送电子邮件:

/ usr / bin / php -f / home /与上面相同

php -f / home /与上面相同