5

在调试了一个安装到新开发环境中的 codeigniter 应用程序后,当我看到没有更多可用的白屏时,我开始吓坏了。我已经能够解决导致此问题的每一个错误,但它已经花费了太长时间。

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

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

非常感谢!

参考: 为什么 Code Igniter 给我一个白页?

4

11 回答 11

10

如果有一个致命的编译错误,那么你很可能会得到一个空白页。尝试做一个

php -l <filename.php>

反对你的剧本

于 2010-05-26T15:04:08.003 回答
4

查看顶部附近的/index.php呼叫error_reporting()- 并确保它不会将您的php.ini配置更改为其他内容(除了E_ALL)。

而且由于您没有提及您的php.ini配置,请检查以确保您也error_reporting = E_ALL有。

于 2010-05-26T15:08:54.357 回答
4

我发现,自从我提出问题以来,似乎没有什么可以确保始终使用 PHP 输出错误,这似乎会在这里和那里抛出白屏。无论 PHP 的 ini 设置如何。

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

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

据我测试过,当出现白屏时 - 它也会登录到这个错误日志中。似乎是了解出现问题时会发生什么的最简单方法。

于 2011-02-26T11:05:40.340 回答
3

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

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

于 2010-05-26T18:51:58.457 回答
2

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

error_reporting(E_ALL);
  1. 同名控制器和模型
  2. 使用保留字作为方法

名单还在继续。。

于 2010-05-27T02:41:18.600 回答
2

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

于 2010-05-27T18:27:08.960 回答
1

考虑设置PHP 的 error_log 配置变量error_reporting()——当您在不知情的情况下进行代码设置时,它会很有帮助。然后您可以检查错误日志并查看发生了哪些错误(如果有)。

于 2010-05-26T15:39:42.017 回答
1

确保 /system 中的日志和缓存文件夹已更改为 777。

于 2010-05-26T18:28:43.013 回答
1

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

但是,我的 PHP 安装没有启用 MySQL。启用 MySQL对我有用。

于 2013-07-16T13:38:43.350 回答
0

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

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

于 2010-05-26T15:53:17.300 回答
0

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

于 2016-05-04T03:13:13.193 回答