Apache + php 7 + FPM =突然系统中断

时间:2017-07-17 13:48:12

标签: php apache fastcgi fpm

我有一个apache2 + php7服务器运行一个简单的wordpress博客。

该博客一直使用apache + mod_php + php7运行,但最近在某些访问高峰时系统崩溃,变慢甚至破坏。

所以我搜索了如何优化配置,许多教程说mod_php很慢,我应该用php-fpm替换它。

我做了并且在更改之后网站更快地被记录,但现在它随机崩溃并开始呈现http 500错误...

没有任何理由导致新的崩溃,没有用户达到峰值或我注意到的任何其他情况。

apache错误日志很简单:

[fastcgi:error] [pid 37179] [client 162.158.167.177:26270] FastCGI: incomplete headers (0 bytes) received from server "/usr/lib/cgi-bin/php-fcgi"
[fastcgi:error] [pid 37176] (104)Connection reset by peer: [client 103.22.200.111:25406] FastCGI: comm with server "/usr/lib/cgi-bin/php-fcgi" aborted: read failed, referer: http://www.fqn.com.br/wordpress/wp-content/plugins/jetpack/css/jetpack.css

真的有成千上万的这样的错误,每两秒一个错误,我不明白。

首先为什么apache会向fpm询问css?

第二个应该是什么“/ usr / lib / cgi-bin / php-fcgi”?此文件夹中没有文件!!应该是什么?

php-fpm的日志完全没用,我启用了loggind的DEBUG级别,我得到的只是:

DEBUG: pid 1664, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool www] currently 1 active children, 2 spare children, 3 running children. Spawning rate 2

每隔一个状态消息就像这样,并且随机间隔一些:

WARNING: pid 1664, fpm_children_bury(), line 252: [pool www] child 38554 exited on signal 11 (SIGSEGV) after 58.797353 seconds from start

但没有堆栈跟踪或详细的错误消息,以帮助我理解。我真的很喜欢apache + fpm的性能,并且不想回滚到mod_php,但是在当前配置中没有崩溃的情况下运行系统12小时是不可能的。

波纹管链接显示服务器的php_info页面 https://jpst.it/11FIP

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

这是编程错误....在php引擎的某个地方 并且它似乎是由一个程序调用它将其输入设置为非阻塞或在启动后过早停止。

(exec(), shell_exec(), proc_open() which fail) ...

似乎PHP开发人员并不是非常渴望,温和地说,解决这个问题。众所周知,YEARS存在(2012年是我见过的最古老的门票)

https://bugs.php.net/bug.php?id=73056