使用CodeIgniter框架的PHP CRON Job

3
我正在尝试创建一个CRON作业,指向我构建的Code Igniter系统中文件内的函数。 我已在我的CPanel上创建了CRON作业,并使用根目录下的简单邮件php函数进行了测试,这可以正常工作。但是,我希望将CRON作业指向MVC框架中的某个位置,但由于某种原因,似乎无法正常工作。
以下是我在CPanel上设置的CRON作业:
0 0 * * 1 wget -q -O /dev/null http://www.urlhere.co.uk/index.php/cron_event/send_reminders 以下是我希望运行的控制器。其位置位于system/controllers/cron_event.php:
<?php

class Cron extends Controller {

function Cron_event()
{
    parent::Controller();
}


/**
 * The index method just displays an access denied message, as we don't support viewing this module in the browser.
 */
function index()
{
    $this->send_reminders();
    $this->load->view('themes/base/header', array('title'=>"Access Denied"));
    $this->load->view('cron/access_denied');
    $this->load->view('themes/base/footer');


}


/**
 * Updates the PR Online Calendar by sending out email notifications for events that have not yet had them sent out.
 */

public function send_reminders() {
    $to = 'jamesholman@urlgoeshere.co.uk';
    $from = 'bigwavetest';
    $message = 'test';

    mail($to, $from, $message); 
}
}

?>

当我指向这个控制器时,CRON作业停止工作。 我有一种感觉是因为我没有包括和要求Code Igniter框架文件,但不确定。 有人有任何想法为什么这不起作用吗? 提前致谢!

1
应用程序中是否实现了访问控制或登录机制? - Nandakumar V
啊,是的,我没有考虑到那个。是的,有一个登录系统已经实现了。这会引起问题吗? - James
1
你必须将Cron_event控制器从登录机制中排除掉。不能使用cron登录。 - Nandakumar V
1个回答

3
在您的cron调用中,您输入了:
wget -q -O /dev/null http://www.urlgoeshere.co.uk/index.php cron_event

我认为它必须是这样的:
wget -q -O /dev/null http://www.urlgoeshere.co.uk/index.php/cron_event

或者:

wget -q -O /dev/null http://www.urlgoeshere.co.uk/cron_event

如果您从URL中删除了index.php。

所以问题是登录机制还是调用了错误的URL? - Kreker
我修改了URL,问题得到解决 :) - James
如果仍然适用,那么$this->input->is_cli_request()有什么用处? - Birla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接