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

问题描述 投票:95回答:12

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

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

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

php cron cpanel
12个回答
63
投票

在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输出/home/username/stdoutx.txt来监控您的cron


2
投票

专家建议。

/usr/local/bin/php /home/username/public_html/path/to/cron/script

1
投票

它实际上很简单,

php -q /home/username/public_html/cron/cron.php

0
投票

对于特定于域的Multi PHP Cron Job,请执行以下操作,

/usr/local/bin/ea-php56 /home/username/domain_path/path/to/cron/script

在上面的示例中,将“ea-php56”替换为分配给您要使用的域的PHP版本。

希望这有助于某人。


102
投票

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

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

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


29
投票

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

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


18
投票

这是最简单的方法:

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

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

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


15
投票

这是方式:

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

11
投票

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

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

9
投票

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

php /path/to/script.php

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

#!/usr/bin/env php

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

我希望它会有所帮助。


3
投票

这很好,也发送电子邮件:

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

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

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

php -f / home /与上面相同

© www.soinside.com 2019 - 2024. All rights reserved.