Назад | Перейти на главную страницу

php-fpm (PHP-7.1) не может предоставлять контент для nginx во FreeBSD

Я пытаюсь установить nginx и php-fpm следующий это руководство в системе FreeBSD 11.1 на raspberrypi-B +.

Все работает так, как описано в руководстве до пункта 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% процессорного времени. Через некоторое время 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

Пид 933 - это мастер. Нет вывода журнала из дочерних процессов.

Это то, что я обнаружил, и я не знаю, что мне следует искать дальше. Есть ли у вас какие-либо предложения?

РЕДАКТИРОВАТЬ

Проблема, похоже, связана с PHP-7.1. Я установил старую версию (PHP-5.6), и проблема исчезла. Я оставляю вопрос открытым, если проблема связана с какой-то конкретной конфигурацией PHP-7.