Содержание
Подключаемся к 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