PHP-FPM status is empty

I set up pm.status_path = /status option:

ubuntu:~$ cat /etc/php/7.1/fpm/pool.d/www.conf | egrep 'listen|status'
listen = /run/php/php7.1-fpm.sock
listen.owner = www-data
listen.group = www-data
pm.status_path = /status

Socket is correct (and sites work):

ubuntu:~$ sudo ls -la /run/php/php7.1-fpm.sock
srw-rw---- 1 www-data www-data 0 Feb  9 07:58 /run/php/php7.1-fpm.sock

But I can't receive this status page:

ubuntu:~$ SCRIPT_NAME=/status SCRIPT_FILENAME=/status \
> REQUEST_METHOD=GET sudo cgi-fcgi -bind -connect /run/php/php7.1-fpm.sock
Content-type: text/html; charset=UTF-8

Or using nginx config:

server {
    listen 80;
    server_name localhost;

    location /status {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
    }
}

curl http://localhost/status is empty, status code is 200.
curl http://localhost/something returns error 404 as expected.

What should I do to solve this situation? What to check?

0
задан 9 February 2018 в 11:29
2 ответа

Для Для правильной работы страницы статуса PHP-FPM под nginx необходимо установить все следующие параметры:

fastcgi_param REQUEST_METHOD    $request_method;
fastcgi_param QUERY_STRING      $query_string;
fastcgi_param SCRIPT_NAME       /status;   # see notes below
fastcgi_param SCRIPT_FILENAME   "";        # see notes below

REQUEST_METHOD и QUERY_STRING устанавливаются посредством include fastcgi_params . Если вы используете этот файл конфигурации, вам не нужно устанавливать их снова.

Значение SCRIPT_NAME должно соответствовать значению pm.status_path в вашем PHP- Конфигурация FPM.

Значение SCRIPT_FILENAME неважно, но оно должно быть установлено . Если вы пропустите этот параметр, вы получите пустой ответ.

1
ответ дан 4 December 2019 в 13:27

Мне пришлось добавить эту строку в это место:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
1
ответ дан 4 December 2019 в 13:27

Теги

Похожие вопросы