1

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

该博客一直使用 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,但是在当前配置下不可能运行 12h 而不崩溃。

下面的链接显示了服务器 https://jpst.it/11FIP的 php_info 页面

有人有想法吗?

4

1 回答 1

0

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

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

委婉地说,PHP 开发人员似乎不是很急于解决这个问题。它已存在多年(2012 年是我见过的最旧的票)

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

于 2017-11-25T18:30:51.750 回答