我收到了空白屏幕。 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日志以解决问题?
答案 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。