Подключаемся к php-fpm напрямую

Допустим, php-fpm висит на 8080 порту и на него проксятся запросы с nginx. Кто виноват, nginx или fpm? Как проверить работу php-fpm? Подключиться к нему напрямую!

Смотрим на каком порту висит php-fpm

sudo cat /etc/php/7.0/fpm/pool.d/www.conf | grep listen

Получаем порт 8080:

listen = localhost:8080
listen.owner = www-data
listen.group = www-data

Или так:

sudo netstat -ntlp | grep php-fpm

Получаем порт 8080:

tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      3032/php-fpm.conf)

Или смотрим конфиг nginx:

php-fpm-nginx.conf
location ~ \.php$ {
  fastcgi_pass  localhost:8080;
  fastcgi_param SCRIPT_FILENAME
                $document_root$fastcgi_script_name;
  include       fastcgi_params;
}

Подключиться и шлем запросы php-fpm напрямую

Ставим пакет:

sudo apt-get install libfcgi0ldbl

Запрашиваем сайт:

SCRIPT_NAME=/index.php \
SCRIPT_FILENAME=/var/www/site.ru/index.php \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect 127.0.0.1:8080

Для такого простого скрипта

/var/www/site.ru/index.php
<?php
header("HTTP/1.0 404 Not Found");
// header("HTTP/1.0 200 Ok"); // Не выводится
echo 'test';

выведется:

Status: 404 Not Found
Content-type: text/html; charset=UTF-8

test