【发布时间】:2018-11-13 04:54:44
【问题描述】:
我正在尝试设置一个 cron 来运行 codeigniter 控制器/方法。
我的应用程序和系统文件等在根目录之外。
我已经创建了一个 cli.php 文件作为 hack 以使其正常工作,正如 codeigniter 论坛上的某人所建议的那样。文件内容为:
if (isset($_SERVER['REMOTE_ADDR'])) {
die('Command Line Only!');
}
set_time_limit(0);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'] = $argv[1];
require dirname(__FILE__) . '/public_html/index.php';
现在,我可以使用这个术语命令通过 cli 成功运行控制器/方法:
php cli.php cron/reccuring_checks
但是我可以让它作为 cron 运行吗?哦,亲爱的,不,我不能,一整天都在这里。
我尝试过:(以及 1000 种不同的其他组合)
php cli.php cron reccuring_checks
/usr/bin/php -q /home/DOMAIN/cli.php cron/reccuring_checks
/usr/bin/php -q /home/DOMAIN/cli.php cron reccuring_checks
我收到以下错误
<p>Severity: Notice</p>
<p>Message: Undefined index: REMOTE_ADDR</p>
<p>Filename: drivers/Session_files_driver.php</p>
<p>Line Number: 130</p>
我可以在网上找到很多关于这方面的帖子,通常与 CI2 和替换方法有关:
$_SERVER['REMOTE_ADDR'] with $this->server('remote_addr')
在系统/核心/输入文件中,但已在 CI3 中修改
那么有没有人知道我怎样才能让它工作?
我认为问题在于我的核心文件位于根目录之上,但这就是 CI 建议您为安全而做的事情,而我现在要更改它还有很长的路要走?p>
【问题讨论】:
-
在您的 cli.php 文件中尝试设置 var
$_SERVER['REMOTE_ADDR'] = '127.0.0.1'这不是最好的方法,但它应该可以工作。 -
好的,这已经消除了错误,但脚本没有运行。正确的 cron 代码是什么?
-
Om 现在收到此错误:消息:session_start():无法发送会话 cookie - 标头已发送
-
某些东西必须呼应出某些东西,否则某处有一些空白!我会仔细检查以确保您没有输出任何包含空格的内容。
-
不,没有回声。空格如何输出?
标签: php codeigniter cron