如何配置Codeigniter报告所有错误?

时间:2011-09-10 07:52:59

标签: php codeigniter php-5.3

我在CI的$autoload['libraries'] = array('database');中有一行 - autoload.php。因此,我得到一个空白页面。当我删除'database'选项后,我开始获取输出。

现在我的问题不是如何配置数据库,而是如何配置CI以说出自己的想法。启用'database'后,我得到的是一个完整的空白页面。 php日志中没有错误,Apache日志中没有错误,CI日志中没有错误。在PHP中,我设置了E_ALL。在我的CI配置中,我已将log_threshold设置为4,即应记录所有消息。我还需要做什么?

4 个答案:

答案 0 :(得分:15)

这取决于您的CI版本。对于< 2.x编辑顶级index.php并调整error_reporting函数以使用E_ALL“

error_reporting(E_ALL);

对于> = 2.x编辑顶级index.php并确保将ENVIRONMENT设置为:

define('ENVIRONMENT', 'development');

将error_reporting设置为E_ALL。

答案 1 :(得分:12)

使用以下内容在您的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 报告:)

答案 2 :(得分:2)

以下环境设置将强制PHP在发生错误时显示错误:

  • 应用环境 define('ENVIRONMENT','development'); / *
  • 错误报告

    如果(defined('ENVIRONMENT') {     开关(环境)     {         案例“发展”:             //报告所有错误             error_reporting(E_ALL);

            // 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.');
    }
    

    }

答案 3 :(得分:1)

我不确定究竟是什么原因,但是我使用了剩余的php.ini文件安装了PHP。后来我用自己的PHP安装了完整的WAMP堆栈。当我从先前的安装中删除剩余的php.ini文件时,它开始正常工作。似乎新安装中的PHP二进制文件正在使用左侧的php.ini,它位于完全不同的目录中;也许是因为该目录在环境PATH中。