提问人:Mohammad Naji 提问时间:1/5/2013 更新时间:4/22/2013 访问量:14765
我希望 codeigniter 回显 php 错误而不是 500 内部错误
I want codeigniter to echo php errors instead of 500 internal error
问:
我目前已将我的 Codeigniter 根变量设置为 .index.php
environment
development
而且我还没有启用微小的 URL 模式。
我不喜欢每天晚上检查!/var/log/apache2/error.log
希望我的PHP错误返回页面。500 内部错误实际上是可用于显示错误的*HARD*est方法。
请注意,我们正在使用默认配置的 Ubuntu 12.04 LTS 服务器。
答:
15赞
Rudi Visser
1/5/2013
#1
正如评论中提到的,我怀疑这是CodeIgniter的问题。更有可能的是,您只是在您的 .display_errors
php.ini
如果我没记错的话,CI 包含一个无论如何都要更改默认行为的调用,因此您始终可以先查看那里并查看发生了什么。index.php
ini_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
:谢谢你们俩的解决方案。
评论
php.ini
display_errors