Php 如何配置Codeigniter以报告所有错误?
我有一行-Php 如何配置Codeigniter以报告所有错误?,php,codeigniter,php-5.3,Php,Codeigniter,Php 5.3,我有一行-$autoload['libraries']=array('database'),在CI的autoload.php中。因为这个,我得到了一张空白页。当我删除“数据库”选项时,我开始获取输出 现在我的问题不是如何配置数据库,而是如何配置CI以表达其想法。当“数据库”被启用时,我得到的只是一个完全空白的页面。php日志中没有错误,Apache日志中没有错误,CI日志中没有错误。在PHP中,我设置了E_ALL。在我的CI配置中,我已将log\u阈值设置为4,即应记录所有消息。我还需要做什么?
$autoload['libraries']=array('database')代码>,在CI的autoload.php
中。因为这个,我得到了一张空白页。当我删除“数据库”
选项时,我开始获取输出
现在我的问题不是如何配置数据库,而是如何配置CI以表达其想法。当“数据库”
被启用时,我得到的只是一个完全空白的页面。php日志中没有错误,Apache日志中没有错误,CI日志中没有错误。在PHP中,我设置了E_ALL
。在我的CI配置中,我已将log\u阈值设置为4
,即应记录所有消息。我还需要做什么?这取决于您的CI版本。对于<2.x,编辑顶级index.php并调整错误报告函数以使用E_ALL“
对于>=2.x,编辑顶级index.php并确保环境设置为:
define('ENVIRONMENT', 'development');
它将错误报告设置为E_ALL。在webroot中创建一个包含以下内容的.htaccess文件
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value error_reporting -1
php_value log_errors_max_len 0
希望这样可以启用您的日志。
请确保在生产服务器上将值设置为off并报告为0:)我不确定真正的原因是什么,但我安装了一个带有剩余PHP.ini文件的PHP。后来,我用自己的PHP安装了完整的WAMP堆栈。当我从以前的安装中删除剩余的PHP.ini文件时,它开始正常工作d、 新安装中的PHP二进制文件似乎使用了完全不同的目录中的剩余PHP.ini;可能是因为该目录位于环境路径中。以下环境设置将迫使PHP在出现错误时显示错误:
- 应用环境
定义(“环境”、“发展”);
/*
- 错误报告
if(已定义(“环境”))
{
交换机(环境)
{
“发展”案例:
//报告所有错误
错误报告(E_全部)
}
您能给出CI程序内部的phpinfo()
输出吗?触发错误('test',E\u USER\u NOTICE)的原因是什么
give you?@Lars你能告诉我你想要的phpinfo的确切部分吗,因为它输出了一个很长的列表,我认为不能发布在这里。顺便说一句,tigger\u错误的输出是遇到了一个PHP错误,严重性:用户通知,消息:test,文件名:controllers/welcome.PHP,行号:22
。这是一个ca我在浏览器窗口中启动。在CI日志中,它也被记录为错误-2011-09-10 13:49:21-->严重性:用户注意-->测试C:\....\lib\codeigniter\application\aceinvite\controllers\welcome.php 22
。我只是想确保错误设置正确(触发器错误证明了这一点)。自动加载程序可能不会抛出任何错误消息或异常。您仍然可以幸运地定义自己的错误处理程序,但我想这不会有帮助。也许其他人有主意(除了调试autoload.php)-祝你好运!:)这对我有帮助,试试看:我找到了这个解决方案:它对我有效。我正在使用>=2.x版本和define('ENVIRONMENT','development'));
已经在index.php的顶部定义。接受你的答案,因为你的答案简短明了,即使我的问题与此无关。你的答案是90%的人会寻找的。对于仍然面临问题的人,他们可能会想看看我的答案。我很高兴在Codeignitor中它对我有用,它对我有用吗所有PHP框架,或者是否存在任何限制,使其适用于所有PHP框架?
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value error_reporting -1
php_value log_errors_max_len 0
// Display errors in output
ini_set('display_errors', 1);
break;
case 'testing':
case 'production':
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);
// Don't display errors (they can still be logged)
ini_set('display_errors', 0);
break;
default:
exit('The application environment is not set correctly.');
}