获取空白屏幕,日志中没有任何内容这是Php语法和Apache问题吗?

时间:2014-11-17 19:25:26

标签: php apache2

我收到了空白屏幕。 Apache日志中没有错误,没有。 我在想可能有一个PHP语法错误,它悄然死了,但我已经配置php.ini来显示错误:

display_errors=On
html_errors=On
error_reporting=E_ALL | E_STRICT 
display_startup_errors=On

这里是加载的相关php配置:

   display_errors   On  On
     display_startup_errors On
    enable_dl   Off Off
    enable_post_data_reading    On  On
    error_append_string no value    no value
    error_log   no value    no value
    error_prepend_string    no value    no value
    error_reporting 22527

为什么没有Apache错误日志?如何跟踪Apache执行?任何帮助深表感谢。谢谢

更新: 我错了,Apache在Apache配置中由ErrorLog指定的位置重启时只重启一次日志,但是即使我得到空白站点也没有写任何内容。这里记录来自ErrorLog:

[Tue Nov 18 17:08:20.372970 2014] [mpm_prefork:notice] [pid 1601] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.4 configured -- resuming normal operations
[Tue Nov 18 17:08:20.376988 2014] [mpm_prefork:info] [pid 1601] AH00164: Server built: Jul 22 2014 14:36:39
[Tue Nov 18 17:08:20.377699 2014] [core:notice] [pid 1601] AH00094: Command line: '/usr/sbin/apache2'
[Tue Nov 18 17:19:32.301203 2014] [mpm_prefork:notice] [pid 1643] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.4 configured -- resuming normal operations
[Tue Nov 18 17:19:32.313839 2014] [mpm_prefork:info] [pid 1643] AH00164: Server built: Jul 22 2014 14:36:39
[Tue Nov 18 17:19:32.314481 2014] [core:notice] [pid 1643] AH00094: Command line: '/usr/sbin/apache2'
[Tue Nov 18 17:50:22.848631 2014] [core:info] [pid 1643] AH00096: removed PID file /var/run/apache2/apache2.pid (pid=1643)
[Tue Nov 18 17:50:22.848631 2014] [mpm_prefork:notice] [pid 1643] AH00169: caught SIGTERM, shutting down
[Tue Nov 18 17:50:25.288368 2014] [mpm_prefork:notice] [pid 3313] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.4 configured -- resuming normal operations
[Tue Nov 18 17:50:25.290696 2014] [mpm_prefork:info] [pid 3313] AH00164: Server built: Jul 22 2014 14:36:39
[Tue Nov 18 17:50:25.291613 2014] [core:notice] [pid 3313] AH00094: Command line: '/usr/sbin/apache2'

如何为PHP错误或任何事情制作Apache日志以解决问题?

1 个答案:

答案 0 :(得分:0)

事实证明这既不是Apache也不是PHP错误,而是一个应用程序级问题,其中声明了ErrorHandler函数,它确实隐藏了所有的php错误,如下所述: PHP's white screen of death

我得出的结论是,在虚拟主机设置中将ErrorLevel更改为trace8,它既不是Apache也不是PHP配置:

 LogLevel trace8
 ErrorLog ${APACHE_LOG_DIR}/dev-virtual/error.log

然后,我从命令行中拖出ErrorLog中指定的日志并发出请求。日志显示:

[Tue Nov 18 18:16:37.398720 2014] [http:trace3] [pid 4054] http_filters.c(977): [client 10.88.12.0:49378] Response sent with status 200, headers:
...
[Tue Nov 18 18:16:37.399243 2014] [http:trace4] [pid 4054] http_filters.c(806): [client 10.88.12.0:49378]   Content-Length: 0
...

此处,日志显示200响应,Content-Length:0。 200是Apache的良好响应,因此它不是Apache错误负责空白页面。看到Content-Lenght设置为0,让我觉得除了PHP设置/配置问题还有其他问题。它是应用程序级别的ErrorHandler。