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

我希望codeigniter回显php错误,而不是500个内部错误,php,codeigniter,error-reporting,Php,Codeigniter,Error Reporting,我目前已将Codeigniter rootindex.php的环境变量设置为开发 我还没有启用小URL模式 我不喜欢日夜查看/var/log/apache2/error.log 希望我的PHP错误返回页面。500内部错误实际上是可以用来显示错误的*硬*est方法 请注意,我们正在使用默认配置的Ubuntu 12.04 LTS服务器上工作。如评论中所述,我怀疑这是否是CodeIgniter的问题。更可能的情况是,您的php.ini中将display\u errors设置为off 如果我没记错的话,

我目前已将Codeigniter root
index.php
环境
变量设置为
开发

我还没有启用小URL模式

我不喜欢日夜查看
/var/log/apache2/error.log

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


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

如评论中所述,我怀疑这是否是CodeIgniter的问题。更可能的情况是,您的
php.ini
中将
display\u errors
设置为off

如果我没记错的话,CI的
index.php
包含一个对
ini\u集的调用('error\u 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\u set('display\u 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;
    }
}

在开发环境案例中,只需在index.php中添加以下内容:

case 'development':
 error_reporting(E_ALL);
 ini_set('display_errors', 'On');

编辑:正如Rudi Visser所说,您可以通过更改php.ini来修复它。我更喜欢在这里修复它,所以每当我下载项目时(我的笔记本电脑、办公电脑或我在紧急情况下借用的电脑,我不需要更改php.ini配置)

我也遇到了同样的问题,我从codeigniter得到的唯一信息就是500个内部错误。(我的旧项目和干净的安装也有同样的问题) 但有趣的是,我的非CI项目仍然可以工作,其中大部分包含php

写出错误的提示

ini_set('display_errors', 'On' / ,1)
由于某种原因解决了我的问题,我没有读取codeigniter核心文件的权限

将“+r”添加到文件中修复了该问题

鲁迪·维瑟
CarlosIPe

我感谢你们两位提供的解决方案。

可能不是codeigniter,您是否检查了
php.ini
中的
display\u错误