我希望 codeigniter 回显 php 错误而不是 500 内部错误

I want codeigniter to echo php errors instead of 500 internal error

提问人:Mohammad Naji 提问时间:1/5/2013 更新时间:4/22/2013 访问量:14765

问:

我目前已将我的 Codeigniter 根变量设置为 .index.phpenvironmentdevelopment

而且我还没有启用微小的 URL 模式。

我不喜欢每天晚上检查!/var/log/apache2/error.log

希望我的PHP错误返回页面。500 内部错误实际上是可用于显示错误的*HARD*est方法。

请注意,我们正在使用默认配置的 Ubuntu 12.04 LTS 服务器。

PHP codeigniter 错误报告

评论

0赞 Rudi Visser 1/5/2013
也许它不是代码点火器,你检查过吗?php.inidisplay_errors

答:

15赞 Rudi Visser 1/5/2013 #1

正如评论中提到的,我怀疑这是CodeIgniter的问题。更有可能的是,您只是在您的 .display_errorsphp.ini

如果我没记错的话,CI 包含一个无论如何都要更改默认行为的调用,因此您始终可以先查看那里并查看发生了什么。index.phpini_set('error_reporting', ..);

刚刚看了一下,这是默认设置:

/*
|---------------------------------------------------------------
| PHP ERROR REPORTING LEVEL
|---------------------------------------------------------------
|
| By default CI runs with error reporting set to ALL.  For security
| reasons you are encouraged to change this when your site goes live.
| For more info visit:  http://www.php.net/error_reporting
|
*/
    error_reporting(E_ALL);

如果你只是在那里添加,它应该开始工作就好了。显然,最好的办法是为您的环境添加一个开关来设置这些变量,我不确定为什么它不是那样的,但这里有一个示例:ini_set('display_errors', 1);

if (defined('ENVIRONMENT'))
{
    switch (ENVIRONMENT)
    {
        case 'development':
            error_reporting(E_ALL);
            ini_set('display_errors', 1);
            break;
        case 'production':
            error_reporting(0);
            ini_set('display_errors', 0);
            break;
    }
}
1赞 user1204379 4/22/2013 #2

我遇到了同样的问题,我从 codeigniter 得到的唯一结果只是一个 500 内部错误。(我的旧项目和全新安装也做了同样的事情) 但有趣的是,我的非 CI 项目仍然主要包含 php。

写出错误的提示

ini_set('display_errors', 'On' / ,1)

解决了我的问题,由于某种原因,我没有权限读取codeigniter核心文件。

将“+r”添加到文件中解决了该问题。

Rudi Visser
CarlosIPe
:谢谢你们俩的解决方案。