【问题标题】:How to execute codeigniter controller in cron如何在 cron 中执行 codeigniter 控制器
【发布时间】:2017-03-21 18:28:42
【问题描述】:

我在将 codeigniter 控制器作为 cron 运行时遇到问题。 我从 cpanel 创建了一个 cron,它将每 2 分钟执行一次。

我使用的命令是

php /home/myusername/public_html/index.php welcome

cron 执行,但欢迎控制器内部的逻辑没有执行。即

<?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Welcome extends CI_Controller {

    public function index()
    {
        echo 'hi';
    }

}
?>

它不是打印“hi”,而是打印我的主视图的 html 代码。 我已经设置了路线

$route['default_controller'] = 'Site';

在“站点”控制器中

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Site extends CI_Controller
{
     public function index()
     {
          ...
          ...
          $this->load->view('site/home', $data);
     }
}
?> 

因此,当它执行时,会打印站点/主页的 html。

当我用命令尝试使用 shell 时

php /home/myusername/public_html/index.php welcome

它执行正确并打印“hi”。

【问题讨论】:

  • 一切看起来都不错,而且在命令行或 cron 中执行相同的代码会得到不同的结果当然很奇怪。也许您的 cron 语法有问题,并且没有收到“欢迎”,因此请求被定向到默认控制器?
  • 是的,但我坚持这一点,无法找出我错过了什么
  • 尝试在你的欢迎控制器中创建第二个函数 test() 来回显“test”,然后在一个新的 cron 条目中尝试调用 php /home/myusername/public_html/index.php welcome测试
  • 我已经创建了功能测试,但结果相同 - 打印主页视图的 html
  • 尝试像我建议的那样从 cron 调用它

标签: php codeigniter cron


【解决方案1】:

试试

php /home/myusername/public_html/index.php welcome index

【讨论】:

    猜你喜欢
    • 2018-06-14
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多