Я пытаюсь установить 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.