Php Cron作业在cpanel中工作不正常

Php Cron作业在cpanel中工作不正常,php,cron,cpanel,Php,Cron,Cpanel,我已经设置了cron作业,它工作正常,但是当我直接运行php文件(从路径/url)时,它成功地运行了,但是从cron它没有。不过,我设置了另一个非常简单的文件,以确保cron命令/路径设置正确。我创建了另一个文件,并使用了简单的php邮件函数,它正在成功运行。请告诉我可能的调查区域。(我正在使用Cpanel)作为cURL的替代方案,您可以通过基于文本的浏览器调用脚本。大概是这样的: lynx -dump http://localhost/script.php curl http://domai

我已经设置了cron作业,它工作正常,但是当我直接运行php文件(从路径/url)时,它成功地运行了,但是从cron它没有。不过,我设置了另一个非常简单的文件,以确保cron命令/路径设置正确。我创建了另一个文件,并使用了简单的php邮件函数,它正在成功运行。请告诉我可能的调查区域。(我正在使用Cpanel)

作为cURL的替代方案,您可以通过基于文本的浏览器调用脚本。大概是这样的:

lynx -dump http://localhost/script.php
curl http://domain.com/yourscript.php

您不应该有任何相对路径——这包括文件和命令。例如,如果要复制文件,不应仅调用
cp
,而应调用类似于
/bin/cp
的命令的完整路径。要找到完整路径,您可以在命令行中运行
which

而不是像这样输入cronjob命令

php -f /path_to_script/script.php 
将命令如下所示:

lynx -dump http://localhost/script.php
curl http://domain.com/yourscript.php
如果要抑制输出,可以在末尾添加
/dev/null

因此,全权指挥将是:

curl http://domain.com/yourscript.php > /dev/null

希望这有帮助

我也面临同样的问题。我在cpanel上的laravel项目中使用任务调度。我的命令是

/usr/local/bin/php/home/user\u name/public\u html/path/to/cron/script

这是一个版本问题。我的服务器默认php版本是7.1.33,但在我的项目中,php版本是7.2。因此,当我运行schedule命令时,它使用与我的projecct不兼容的php7.1。因此,根据cpanel文档,该命令实际上适用于不同的php版本

/usr/local/bin/ea-php99/home/shadhinapp/domain\u path/path/to/cron/script

任何my cron作业命令都是:

/usr/local/bin/ea-php72/home/user\u name/path\u to\u your\u project/artisan schedule:run>/dev/null 2>&1

curl http://mydomain/auto_push/task.php?p=1
这是我项目中的实时工作代码。见下图:


在php代码中,您是否有一些相对路径希望通过cron运行,可能包括一些路径?您可以从cron作业发布完整的命令吗?尝试使用控制台(如putty)运行php文件,并检查是否存在任何错误。问题可能出在include()或require()文件路径上。@DušanRadojević是的,我确实包含了一些文件,然后任何具有URL的人都可以运行您的cron-使用curl是个糟糕的主意。最后!这是我找到的唯一可行的答案,非常感谢,伟大的ideaIt可能无法与附加域一起工作(使用绝对路径使其在那里工作)。