【问题标题】:Set cron job in Codeigniter在 Codeigniter 中设置 cron 作业
【发布时间】:2019-09-30 14:23:49
【问题描述】:

我正在尝试通过 cpanel 中的 cron 作业运行脚本。也许我输入了错误的路径,这就是我收到邮件的原因:

无法打开输入文件。

这是我的代码

class Cron extends CI_Controller
{

    public function run()
    {
        $this->load->library('email');   
        $this->email->to('to@mail.com');
        $this->email->from('from@mail.com','From');
        $this->email->subject('Cron');
        $this->email->message('Hello);
        $this->email->send();
    }
}

此代码可用于

public_html/folder/myproject/application/controller/Cron.php

但我不知道如何在 cron url 中设置此路径

【问题讨论】:

  • 你必须把路径放在服务器而不是codeigniter中。
  • 是的,但是我运行这个脚本。如何设置这个路径?

标签: php codeigniter cron cpanel


【解决方案1】:

请在 cpanel 命令输入中尝试以下操作

wget -q -O - http://www.yourdomain.com/cron/run >/dev/null 2>&1

查看截图

如果你想通过文件做同样的事情,那么请使用正确的路径

/home/youruserdirectory/public_html/folder/myproject/application/controller/Cron.php

youruserdirectory 替换为您当前的用户目录。

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    从您的代码来看,Cron 控制器必须从 Web 调用,而不是从命令行调用,但这很好,您不必为 cron 作业提供服务器上的路径。您可以像这样运行命令向您的站点发出请求:

    */5 * * * * /usr/bin/wget -qO- https://example.com/cron
    

    示例中的命令将每 5 分钟向您的站点发出一个请求,每次都有效地运行 Cron 控制器(如果您没有通过路由名称阻止对其的访问)。

    【讨论】: