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

时间:2017-07-26 20:26:30

标签: php cron cpanel

正如标题中暗示的那样,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

update.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);

4 个答案:

答案 0 :(得分:1)

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

这就是我使用 cPanel 在我的linux服务器上进行此操作的方法。

enter image description here

运行 script.php ,它存储在公共根目录中。当然,在命令行中用您的用户名替换<username>

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

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

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

答案 1 :(得分:1)

由于您的脚本位于public_html目录中,因此可以使用wget作为您的Cron作业

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

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

-q安静模式

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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