在 CPanel 上设置 Cron 作业以执行 PHP 脚本

Posted

技术标签:

【中文标题】在 CPanel 上设置 Cron 作业以执行 PHP 脚本【英文标题】:Setting up a Cron Job on CPanel to executes a PHP script 【发布时间】:2018-01-02 08:31:24 【问题描述】:

正如标题所暗示的,Cron Job 应该执行一个 php 文件(具体来说是 update.php)。然后 php 文件写入存储在同一目录中的 csv 文件。

我将时间设置为 * * * * * 以便它每分钟执行一次。命令编写如下: php -q /home//public_html/wallboard/update.php 我不相信这会导致任何错误,尽管它似乎也没有写入 CSV 文件。但是,当我在浏览器中访问 update.php 时,它会立即执行并写入 CSV 文件。我对 Cron Jobs 没有经验,我确信存在问题,但我不知道这个问题到底是什么。如果您有任何建议/问题,请告诉我。任何帮助表示赞赏!

当前命令:

* * * * * usr/bin/php -q /home/<user>/public_html/wallboard/update.php

更新.php:

<?php

include('lib/HelpDeskView.php');
include('lib/WallboardDisplay.php');
include('helpdesk.csv');
$helpdesk = new HelpDeskView();
$text="\r\ntest,test,test";
file_put_contents( "helpdesk.csv" , $text, FILE_APPEND);

【问题讨论】:

尝试将php更改为/usr/bin/php 你的相关代码+Linux的完整命令,请贴在这里。 尝试将 update.php 权限设置为 755。 1 - 您可能需要在包含语句中包含完整的目录名称,因为 PHP 在命令行模式下运行时可能不会想到与 Web 服务器运行时相同的起始目录. 2 - 我的托管公司,使用他们自己的控制面板,而不是 cpanel,通过使用文件的完整目录路径/名称而不是使用 /usr/bin/php 和文件名来运行 PHP cronjobs,并通过将 PHP 正确运行#!/usr/local/bin/php.cli 在文件的第一行。 3 - 我的托管公司说要使用权限 775。 【参考方案1】:

恕我直言,最好的方法是联系支持人员并询问他们有关命令行语法的信息。


这就是我在我的 linux 服务器上使用 cPanel 的方式。

这运行存储在公共根目录中的 script.php。当然,用你的用户名替换命令行中的&lt;username&gt;

在另一台服务器上,我在行首使用/usr/bin/php 而不是php 的相同命令行,但我知道并非所有服务器都使用相同的命令行。有些在命令行中需要php-cli 而不是php,有些不“喜欢”-f 参数等。所以尝试各种组合。

要找到更多建议,请查看这个 SO 主题:Run a PHP file in a cron job using CPanel

重要的一点:尝试不同的命令时,至少等待一分钟(本例)看看它是否有效,因为 Cron 不会立即触发您的脚本。

【讨论】:

【参考方案2】:

尝试在 PHP CLI 中执行相同的命令并检查它是否给您任何错误,您可能缺少 CLI 执行所需的一些库或引用。

【讨论】:

使用 cpanel 的典型主机不允许 CLI 访问,因此这可能不是一个选项。 在否决答案之前先清除您的问题。 @Wh1T3h4Ck5 我知道 cmets 是做什么用的,但我的意思是不要投票和影响某人的声誉,毕竟他们试图帮助你是不对的。我建议的不是断章取义的解决方案。【参考方案3】:

由于您的脚本位于您的 public_html 目录中,您可以将 wget 用于您的 Cron 作业

wget -O - -q https://yoursite.com/wallboard/update.php

-O - 输出被写入标准输出,在这种情况下它将发送到您在 CPanel 中指定的电子邮件地址

-q安静模式

【讨论】:

【参考方案4】:

/usr/bin/php -d register_argc_argv=On /home/USERNAME/public_html/DOMAIN/artisan AMIR:HOME

【讨论】:

以上是关于在 CPanel 上设置 Cron 作业以执行 PHP 脚本的主要内容,如果未能解决你的问题,请参考以下文章

cron 作业在 cpanel 中无法正常工作

如何在 cPanel 上运行 CRON 作业?

使用php7版本在cpanel上运行cron作业

如何使用 cpanel cron 作业执行 .sh 脚本

如何在共享主机中为 Lumen 应用程序设置 cron 作业(使用 CPanel)?

cron 作业运行 url cpanel