debian — невозможно активировать php-fpm / status | ping-страницу с nginx на debian6 + PLESK 12

я не могу заставить работать страницу «/ status | ping» php-fpm.

несколько спецификаций:
ОС Debian 6.0.10
Версия Plesk 12.0.18 Обновление № 35, последнее обновление 13 февраля 2015 г. 20:37
Версия PHP 5.4.37 (получена от dotdeb)

установил NGINX и PHP-FPM через функцию обновления в PLESK 12

ЗАМЕЧАНИЕ: example.com = my-real-hidden-domain-name.com

* конфиги и файлы *

*** раздел НАСТРОЙКИ ВЕБ-СЕРВЕРА
активированные настройки nginx
галочка: интеллектуальная обработка статических файлов
НЕТ галочка: обслуживать статические файлы напрямую с помощью nginx
галочка: обрабатывать PHP с помощью nginx

*** Дополнительные директивы nginx

location ~ ^/(status|ping)$ {
allow all;
fastcgi_pass unix:/var/www/vhosts/system/example.com/php-fpm.sock;
#include /etc/nginx/fastcgi.conf;
include /etc/nginx/fastcgi_params; # REMARK: not touched
}
location = /nginx_status {
stub_status on;
}

* раздел PHP НАСТРОЙКИ *

cgi.fix_pathinfo=0

в каталоге /var/www/vhosts/system/example.com/conf
добавил пользовательский файл php.ini

* php.ini утверждает: *

[example.com]
; Don't override following options, they are relied upon by Plesk internally

; Following options can be overridden
chdir = /

request_slowlog_timeout = 5s
slowlog = /var/www/vhosts/example.com/logs/example.com/slowlog-example.com.log
; By default use on demand spawning (this requires php-fpm >= 5.3.9)
pm = dynamic
pm.max_children = 20
pm.process_idle_timeout = 10s
; Following pm.* options are used only when 'pm = dynamic'
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 500
request_terminate_timeout = 120s
rlimit_files = 131072
rlimit_core = unlimited
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
catch_workers_output = yes
pm.status_path = /status
ping.path = /ping
ping.response = bong
security.limit_extensions = .php .html

* php.ini утверждает конец

* конфиги и файлы заканчиваются *

пока сайт работает нормально с этой настройкой, все php проходит через nginx / php-fpm

* теперь проблема решена *
если я попытаюсь просмотреть h ** p: //example.com/status

все, что я получаю, это
пустая страница в браузерах

* $ tail -f /var/log/php5-fpm.log -n 600 -s 10 *

16-Feb-2015 21:31:52] WARNING: [pool example.com] child 21532 said into stderr: "NOTICE: Access to the script '/status' has been denied (see security.limit_extensions)"

* /var/www/vhosts/example.com/logs/example.com/proxy_access_log *

xxx.xxx.xxx.xxx - - [17/Feb/2015:16:59:11 +0100] "GET /status HTTP/1.1" 200 31 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:37.0) Gecko/20100101 Firefox/37.0"

* скрипт test-php-fpm.sh: *

SCRIPT_NAME=/status \
SCRIPT_FILENAME=/status \
QUERY_STRING= \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect /var/www/vhosts/system/example.com/php-fpm.sock

конец сценария *
$ ./test-php-fpm.sh выходы через SSH: *

Access to the script '/status' has been denied (see security.limit_extensions)
Status: 403 Forbidden
Content-type: text/html

Access denied.

* конец вывода (пустая строка есть «вывод?» *

$ curl http://example.com/status

просто НИЧЕГО не выводит

* ls -l /var/www/vhosts/system/example.com/php-fpm.sock *

srw-rw---- 1 root psaserv 0 Feb 15 19:58 /var/www/vhosts/system/example.com/php-fpm.sock

согласно нескольким учебникам это должно работать, но не работает.

я пытаюсь найти различные решения в Интернете о
Ошибки PHP-FPM NGINX и «BLANK PAGES» ИЛИ «ACCESS DENIED», но ничего не помогает.

в соответствии с этим руководством
(ЗАМЕЧАНИЕ: Я НЕ КОПИРОВАЛ ФАЙЛЫ, упомянутые там, потому что я хочу просто использовать plesk)
ч ** р: //timreeves.de/internet-technologie/server-tuning-2-nginx-und-php-fpm-unter-ubuntu-12-04-lts-und-plesk-11-5/

я тоже сделал

$ usermod -aG psacln nginx

Я не хочу идти через TCP / IP, сохранить файл сокета, пожалуйста.
Может кто-нибудь, пожалуйста, дайте мне совет.

MFG / ЗКО

1

Решение

Как гласит ошибка (по php-fpm), доступ запрещен, потому что php-fpm ограничен security.limit_extensions (в вашем случае .php и .html, что не то, что вы хотите, я думаю, вы не хотите разобрать .html как .php, я думаю).

Pm.status_path — это / status, и он не заканчивается расширением .php (или .html), поэтому возникает ошибка.

Когда я сам столкнулся с этой проблемой и нашел ваш вопрос в Google, я говорю вам, что мое решение должно было установить:

pm.status_path = /status.php

и используйте его в расположении nginx, и это работает.

Другим решением было бы позволить php-fpm запускать любой файл без ограничения расширения (пустое значение security.limit_extensions), но я не думаю, что это хорошая идея.

1

Другие решения

Это может не решить вашу проблему, но может упростить ее. Регулярные выражения чувствительны к положению, что может быть проблематично. Избегание их в обмен на небольшое дублирование исключит это и позволит масштабировать ваш конфиг с меньшим количеством проблем. Существует также преимущество в производительности при использовании местоположения «=».

location = /status {
allow all;
fastcgi_pass unix:/var/www/vhosts/system/example.com/php-fpm.sock;
include /etc/nginx/fastcgi_params;
}

location = /ping {
allow all;
fastcgi_pass unix:/var/www/vhosts/system/example.com/php-fpm.sock;
include /etc/nginx/fastcgi_params;
}

location = /nginx_status {
stub_status on;
}
0

замещать location на nginx.conf с этим:

location ~ ^/(status|ping)$
{
allow all;

include fastcgi.conf;
fastcgi_pass unix:/var/www/vhosts/system/example.com/php-fpm.sock;
}
0
По вопросам рекламы [email protected]