7

我已经设置了 cron 作业,它工作正常,但是当我直接运行 php 文件(从路径/url)时,它成功运行,但从 cron 却没有。但是我设置了另一个非常简单的文件以确保我的 cron 命令/路径设置正确我创建了另一个文件并使用了简单的 php 邮件功能并且它运行成功。请建议我研究它的可能领域。(我正在使用 Cpanel)

4

5 回答 5

14

而不是像

php -f /path_to_script/script.php 

像这样输入命令:

curl http://domain.com/yourscript.php

如果你想抑制输出,你可以> /dev/null在最后添加。

所以完整的命令将是:

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

希望这可以帮助!

于 2012-11-01T17:49:01.437 回答
1

作为 cURL 的替代方法,您可以通过基于文本的浏览器调用您的脚本。像这样的东西:

lynx -dump http://localhost/script.php
于 2012-10-23T13:36:27.840 回答
0

您不应该有任何相对路径——这包括文件和命令。例如,您不应仅cp在要复制文件时调用,而应调用命令/bin/cp完整路径。要找出完整路径,您可以which <cmd>在命令行运行。

于 2012-10-23T13:38:56.297 回答
0

我遇到了同样的问题。我在 cpanel 的 laravel 项目中使用任务调度。我的命令是

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

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

/usr/local/bin/ea-php99 /home/shadhinapp/domain_path/path/to/cron/script.

我的任何 cron 作业命令都是:

/usr/local/bin/ea-php72 /home/user_name/path_to_your_project/artisan schedule:run >> /dev/null 2>&1

于 2020-07-02T11:42:32.767 回答
0
curl http://mydomain/auto_push/task.php?p=1

这是我项目中的实时工作代码。见下图:

在此处输入图像描述

于 2020-07-04T08:42:07.810 回答