使用 cpanel 的 codeigniter 中的 cronjob

问题描述 投票:0回答:5

我的网站托管服务器是hostmonster.com。

我的应用程序使用 codeigniter 框架。

我有一个代码可以向我的用户发送电子邮件,我想让它自动进行。

我已经使用了托管服务的控制面板,我试着给出命令

php -q www.mysite.com/admin admin sendDailyEmail

我的控制器是 admin,方法是 sendDailyEmail,控制器位于 application/controllers/admin 文件夹中。

每当 cronjob 运行时,我还设置了一封提醒邮件给我。

邮件主题为

Cron php -q /home1/username/public_html/admin admin sendDailyEmail

身体说

没有指定输入文件

我哪里出错了。

我从来没有运行过 cronjobs,这是我第一次。 我也不擅长给出命令行指令。

我的admin sendDailyEmail代码如下

function sendDailyEmail() {
    $data = $this->admin_model->getDailyData();
    foreach ($data as $u) {
    if($u->Daily){
     //if(!$u->Amount){
       if ($u->Email=='[email protected]') {

                $user['user_data']['FirstName'] = $u->FirstName;
                $user['user_data']['LastName'] = $u->LastName;
                $user['user_data']['Id']=$u->Id;

                $this->email->clear();
                $this->email->to($u->Email);
                $this->email->from('[email protected]', 'MySite');
                $this->email->subject("My Subject");
                $msg = $this->load->view('emails/daily_view', $user, true);
                $this->email->message($msg);
                if ($this->email->send())
                    $data['message'] = "Daily Emails has been sent successfully";
                else
                    $data['message'] = "Daily Emails Sending Failed";
            }
        }
    }
    $data['main_content']['next_view'] = 'admin_home_view';
    $this->load->view('includes/admin_template', $data);
}
codeigniter cron cpanel
5个回答
15
投票

您可以使用

wget
并设置您喜欢的时间:

wget http://www.mysite.com/admin/sendDailyEmail

您也可以使用

curl

curl --silent http://www.mysite.com/admin/sendDailyEmail

12
投票

对于 CodeIgniter 2.2.0

你可以试试这个:

 php-cli /home/username/public_html/index.php controller method

或根据您的情况

 php-cli /home/username/public_html/index.php admin sendDailyEmail 

对我来说很好.. 干杯!


3
投票

Codeigniter 为运行 crons 等设置不同的命令行

阅读: http://www.codeigniter.com/user_guide/general/cli.html

所以你应该跑:

php index.php admin admin sendDailyEmail

(可能需要调整;根据您上面的代码)

看看我刚刚写的一篇更深入的文章:

http://codebyjeff.com/blog/2013/10/setting-environment-vars-for-codeigniter-commandline


0
投票

我也遇到过同样的问题,但接下来是我的工作

wget http://www.yoursite.com/controller/function

0
投票

这是我使用 Codeigniter 3 框架在 cpanel 上的 cron 作业的示例:

/usr/local/bin/php /home/user/public_html/project/index.php controller method

感谢 Shinerweb youtube 频道 https://www.youtube.com/watch?v=Pgc2vzrlwok

© www.soinside.com 2019 - 2024. All rights reserved.