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

Zab*_*abs 98 php cron cpanel

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

/usr/bin/php -q /home/username/public_html/cron/cron.php >/dev/null
Run Code Online (Sandbox Code Playgroud)

我没有收到任何说明cron已完成的电子邮件通知,我是否需要对PHP文件执行任何特定操作?

Pan*_*ank 103

我使用此命令来激活cron作业.

/usr/bin/php -q /home/username/public_html/yourfilename.php
Run Code Online (Sandbox Code Playgroud)

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

  • @BhavikShah根据http://php.net/manual/en/features.commandline.options.php,`-q`用于安静模式,禁止HTTP头输出 (4认同)
  • `-q`代表什么? (2认同)

小智 64

在crontab系统中:

  • /usr/bin/php是php程序二进制文件路径(在某些系统的前夫不一样:在FreeBSD /usr/local/bin/php,Linux的:/usr/bin/php)
  • /home/username/public_html/cron/cron.php 应该是你的PHP脚本路径
  • /dev/null 应该是cron输出,例如: /home/username/stdoutx.txt

因此,您可以通过查看cron输出来监控您的cron /home/username/stdoutx.txt

  • 什么是完整的命令?我的意思是在所有选项的一行中完全命令. (2认同)

k10*_*102 29

>/dev/null 阻止cron发送邮件.

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


Emm*_*uel 18

这是最简单的方法:

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

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

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


小智 16

这是方式:

/usr/bin/php -q /home/username/public_html/yourfilename.php >/dev/null
Run Code Online (Sandbox Code Playgroud)


Mik*_*mar 11

这个cron系列使用cpanel在hostgator VPS上为我工作.

/usr/bin/php -q /home/username/public_html/scriptname.php
Run Code Online (Sandbox Code Playgroud)


Ben*_*ish 9

我在CPanel上使用/ usr/bin/php时遇到了问题,因为它被编译为"cgi-fcgi"二进制文件而不是"cli".尝试使用/ usr/local/bin/php或者,因为它是路径中的第一个,只需使用'php'代替:

php /path/to/script.php
Run Code Online (Sandbox Code Playgroud)

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

#!/usr/bin/env php
Run Code Online (Sandbox Code Playgroud)


Lak*_*tra 6

我希望你的问题也是路径和php二进制文件.如果您已根据较旧的答案修复了路径,请在运行cron job时使用php-cli而不是php命令.

有可能php_sapi_name()没有回来cli.它返回其他类似的东西等cgi-fcgi.

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

我希望它会有所帮助.