我已经设置了一个 CRON 来调用 Kohana 3 中的一个 URL。
php /home/user/public_html/index.php my/route/in/bootstrap.php
它似乎可以正常访问 URL。
但是,我收到了这个错误(在我的主机根据 CRON 发送的电子邮件中发回)
Undefined index: HTTP_HOST
SYSPATH/classes/kohana/url.php [ 40 ]
在 Kohana 系统文件中。这是因为 CRON 作业没有发送 HTTP header 吗?
我该如何解决这个问题并使其正常工作(希望不会破解核心文件)。
还是我做错了 CRON?
更新
Pekka 提供了一个 good answer ,但是我想避免更改核心文件(尽管我会作为最后的手段)。
看起来 Kohana 3 确实支持 CLI,因为有一个静态属性 $is_cli
。
http://github.com/kohana/core/blob/master/classes/kohana/core.php#L54
最佳答案
您似乎打开了 E_STRICT
通知,Kohana 的错误处理捕获了它。 E_STRICT
会提示 undefined index 。该索引确实未定义,因为通过 CLI 调用时,PHP 脚本中没有 HTTP_HOST。
尽管如此,您的脚本仍有可能运行良好。您必须在某些时候关闭 error_reporting
以防止消息显示 - 我对 Kohana 的了解不够深,无法知道从 CLI 调用时是否可以使用不同的配置文件。
也许只是在你的特定 Controller 中关闭 error_reporting()
就可以解决问题,尽管它有点 hacky。
关于php - 帮助 Kohana 3 和 CRON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2474106/