我正在尝试安装nginx
并php-fpm
关注本指南在 raspberrypi-B+ 上的 FreeBSD 11.1 系统上。
一切操作均按照指南中第 14 点所述进行,第 14 点涉及php
通过运行以下命令打开包含系统信息的文件
phpinfo();
此时,当我打开 时http://localhost/info.php
,nginx
等待 的答复时超时php-fpm
。日志中出现以下消息nginx
:
[error] 876#100128: *1 upstream timed out (60: Operation timed out) while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /info.php HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", host: "localhost"
我/usr/local/etc/nginx/nginx.conf
有一个文件部分php
:
location ~ \.php$ {
root /usr/local/www/nginx;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_read_timeout 180;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
我有这样/usr/local/etc/php-fpm.d/www.conf
一行:
listen = 127.0.0.1:9000
因此我检查了是否nginx
可以连接到php-fpm
:
$ sudo sockstat -4 -6| grep nginx
给出
www nginx 876 3 tcp4 127.0.0.1:80 127.0.0.1:35165
www nginx 876 6 tcp4 *:80 *:*
www nginx 876 9 tcp4 127.0.0.1:60676 127.0.0.1:9000
root nginx 875 6 tcp4 *:80 *:*
您可以在其中看到请求页面的传入连接和到端口 9000(fastcgi)的传出连接。
看着php-fpm
$ sudo sockstat -4 -6| grep php-fpm
给出
www php-fpm 935 0 tcp4 127.0.0.1:9000 *:*
www php-fpm 934 0 tcp4 127.0.0.1:9000 *:*
www php-fpm 934 4 tcp4 127.0.0.1:9000 127.0.0.1:60676
root php-fpm 933 8 tcp4 127.0.0.1:9000 *:*
您可以在其中看到传入的连接。
似乎nginx
已连接php-fpm
但什么也没发生。htop
我可以看到一个主进程php-fpm
有两个工作子进程,其中一个占用了几乎 100% 的 CPU 时间。一段nginx
时间后超时,工作进程php-fpm
保持 100% 并且不释放套接字。php-fpm
日志文件 ( /var/log/php-fpm.log
) 没有显示任何错误:
[24-Dec-2017 23:09:21] NOTICE: fpm is running, pid 933
[24-Dec-2017 23:09:21] NOTICE: ready to handle connections
Pid 933 是主进程。子进程没有日志输出。
这就是我发现的,我不知道下一步该看什么。你有什么建议吗?
编辑
问题似乎与 PHP-7.1 有关。我安装了旧版本 (PHP-5.6),问题消失了。我保留这个问题,以防问题与某些 PHP-7 特定配置有关。