Apache + PHP-FPM = 随机“错误解析脚本头”+ 段错误

8 php httpd php-fpm apache-2.4

我使用 proxy_fcgi 在 Apache 2.4 上设置了 PHP-FPM,一切正常,但是 4-6 个请求中的每个请求,Apache 都会返回一个空白页面。这发生在我的主站点http://danielhe.com/ 上,但不是子域 vhosts。

这会显示 Apache 的错误日志,[client x] AH01070: Error parsing script headers

最终,有时 Apache segfaults AH00052: child pid 9740 exit signal Segmentation fault (11)

通过多次刷新页面,我可以很容易地重现“错误解析脚本标题”,但是在几次“错误解析脚本标题”之后,段错误会随机发生

更新 我找到了段错误的修复程序,并且 WSOD 显然已自行修复。mod_deflate 有一些问题,但是 Apache 文档中的这个配置修复了它

SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpeg|jpg|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
Run Code Online (Sandbox Code Playgroud)

use*_*517 2

解决方案是使用此配置

SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpeg|jpg|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
Run Code Online (Sandbox Code Playgroud)