白屏死机!

时间:2010-05-26 15:02:00

标签: php codeigniter error-handling wsod

在调试安装到新开发环境中的codeigniter应用程序之后,当看到没有更多可用的白色屏幕时,我已经开始害怕了。我已经能够解决造成这种情况的每一个错误,但是它已经过了很长时间。

PHP error_reporting(E_ALL)& display_errors", 1也已设置。我甚至安装了Xdebug以期获得更多输出,但没有。我的日志记录设置也正常,但没有任何内容写入日志。

有没有办法打印出信息而不是完整的白屏?它肯定会缩短我花在解决导致这种错误的最终错误上的时间吗?

非常感谢!

参考: Why does Code Igniter give me a white page?

11 个答案:

答案 0 :(得分:10)

如果出现致命的编译错误,那么您可能会得到一个空白页面。 尝试做一个

php -l <filename.php>

针对您的脚本

答案 1 :(得分:4)

查看/index.php顶部附近的error_reporting()来电 - 并确保它没有将您的php.ini配置更改为其他内容(E_ALL除外)。

由于您没有提及php.ini配置,请检查以确保您还有error_reporting = E_ALL

答案 2 :(得分:4)

我发现,从我的问题时间开始,似乎没有任何东西可以确保错误总是用PHP输出,这似乎在这里和那里抛出白屏。无论PHP的ini-settings。

我发现最好的解决方法是使用以下行来确保将错误日志记录放入由应用程序轻松访问和监视的文件中:

ini_set('error_log', MYPATH .'logs/errorlog.log'); 

据我测试过,当出现白屏时 - 它也会登录到此错误日志中。似乎是知道出现问题时最简单的方法。

答案 3 :(得分:3)

grep文件'error_reporting'和'display_errors',应用程序可能会将其关闭。

另外,为了能够看到解析错误,你需要在php.ini文件中设置error_reporting / display_errors,或者.htaccess文件,在脚本文件中设置它不会做,并将导致白页你描述是否存在解析错误。

答案 4 :(得分:2)

最好的办法是列出可能导致此问题的常见问题清单,因为CI的默认值已经

error_reporting(E_ALL);
  1. 相同名称控制器和型号
  2. 使用保留字作为方法
  3. 列表继续......

答案 5 :(得分:2)

除了发布的其他内容之外,还要确保使用@(错误抑制运算符)掩盖的内容不会引发致命错误。

答案 6 :(得分:1)

考虑设置PHP's error_log configuration variable - 在您不知情的情况下设置代码error_reporting()时,它会很有帮助。然后,您可以检查错误日志并查看发生了哪些错误(如果有)。

答案 7 :(得分:1)

确保将/ system中的日志和缓存文件夹chmod为777。

答案 8 :(得分:1)

我在新安装的服务器上遇到此问题。 Debian 7。 我启用了日志记录,错误报告,禁用gzip等。

但是,我的PHP安装没有启用MySQL。 启用MySQL 为我做了诀窍。

答案 9 :(得分:0)

确保CI缓冲区外的文件输出中没有空格,尤其是打开压缩时。您可以通过关闭CI配置文件中的压缩来测试这一点。

请参阅第2步:http://codeigniter.com/user_guide/installation/upgrade_141.html(请注意,虽然这是用于升级,但它包含一个解释问题的配置文件片段。)

答案 10 :(得分:0)

您是否碰巧在控制器内为该特定方法创建了缓存输出。因为如果是这样,那么它可能会创建页面的缓存版本,实际上该页面甚至都没有运行。缓存的错误输出页面正在显示。 请检查应用程序内的缓存文件夹。它应该只包含index.html文件。