在Codeigniter中设置cron作业

时间:2019-09-16 10:35:30

标签: php codeigniter cron cpanel

我正在尝试通过 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中设置此路径

2 个答案:

答案 0 :(得分:1)

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

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

查看屏幕截图 enter image description here

如果要通过文件执行相同的操作,请使用正确的路径

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

youruserdirectory替换为当前用户目录。

希望这会有所帮助。

答案 1 :(得分:0)

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

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

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