【发布时间】: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