ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

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

我认为看到许多项目都托管在 Cpanel 上是非常相关的,如果需要,人们需要知道如何运行 cron 作业
如果服务器故障或堆栈溢出中不允许使用 cPanel,那么有关它的问题应该在哪里?
具有讽刺意味的是,这个问题被归类为 StackOverflow 的“离题”,但这是我在这里遇到过的最活跃的问题.....我希望它对其他人有所帮助:)
谢谢@Tatu Ulmanen 它对我有用!
您可以通过删除这部分 ">/dev/null" 来获取电子邮件通知。还要确保将所需的电子邮件地址添加为 cPanel cronjob 部分中的通知电子邮件地址。

J
Javascript Coder

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

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

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


-q 代表什么?
@BhavikShah 根据 php.net/manual/en/features.commandline.options.php-q 用于安静模式,抑制 HTTP 标头输出
@威廉谢谢。知道了。
t
tomb

在 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


我现在正在使用它并且它可以工作但我没有收到任何电子邮件通知任何想法为什么不呢? php /home/username/public_html/cron/cron.php 注意我必须将以下行放在 PHP 脚本的顶部 #! /usr/bin/php -q
如果你想让 cronjob 为你发送电子邮件,你必须使用 php mail(),我不认为 cronjob 有自动邮件系统,除非你使用 shell 脚本或 php。
当我单击 cPanel 中的“cronjobs”选项卡时,页面上有两个框 - 一个用于您希望执行的命令,另一个用于您希望将输出发送到的电子邮件地址。这是在 cPanel 11 中。
什么将是完整的命令?我的意思是在一行中包含所有选项的完整命令。
@SomyA 请你告诉我运行 java 脚本文件的命令。
k
k102

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

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


请问你是怎么做到的? cronTabs 不会输出到什么东西吗?我也在结尾做>/dev/null 2>&1......
@ThomasK 如果您执行这样的任务/path/to/file.php > /dev/null,它将保持沉默。
E
Emmanuel

这是最简单的方法:

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

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

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


A
Asi

这是这样的:

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

W
Wh1T3h4Ck5

这条 cron 行在使用 cpanel 的 hostgator VPS 上为我工作。

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

B
BenKennish

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

php /path/to/script.php

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

#!/usr/bin/env php

J
JH_

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

php_sapi_name() 可能没有返回 cli。它返回像 cgi-fcgi 等其他东西。

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

我希望它会有所帮助。


S
Sajjad

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

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

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

/usr/bin/php -f /home/同上

php -f /home/同上


A
Ali Akram

专家建议。

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

G
Greenonline

其实很简单,

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

A
Anjana Silva

对于特定于域的多 PHP Cron 作业,请这样做,

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

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

希望这可以帮助某人。


N
Nicoli

在 Hostgator CPANEL 上,这对我有用:

php /home/here_your_user_name/public_html/cronJob.php

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅