php-fpm(PHP-7.1)无法在 FreeBSD 上向 nginx 提供内容

php-fpm(PHP-7.1)无法在 FreeBSD 上向 nginx 提供内容

我正在尝试安装nginxphp-fpm关注本指南在 raspberrypi-B+ 上的 FreeBSD 11.1 系统上。

一切操作均按照指南中第 14 点所述进行,第 14 点涉及php通过运行以下命令打开包含系统信息的文件

phpinfo();

此时,当我打开 时http://localhost/info.phpnginx等待 的答复时超时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 特定配置有关。

相关内容