Доступ до сторінки / статусу PHP-FPM вручну (обійти Apache)


9

Існує помилка PHP5.3.3, яка не дозволить мені переглядати сторінку / статус php-fpm через статус Apache2. Чи є спосіб вручну отримати доступ до цих даних? Я не можу оновити вікно (Ubuntu 10.10, php5.3.4 не підтримується).

Я спробував підключитися, використовуючи техніку тут: http://inode.co.nz/testing-a-fastcgi-service , але не пощастило.

Відповіді:


12

Для того , щоб завантажити сторінку стану /, ви повинні мати деякі змінні оточення встановлено, в зокрема: SCRIPT_NAME, SCRIPT_FILENAME, QUERY_STRING, і REQUEST_METHOD. Вам не потрібно DOCUMENT_ROOT(навіть для звичайного запиту).

Під правильним пулом (це не глобальна настройка) вашого набору конфігурацій php-fpm (або відмежування):

pm.status_path = /status

Потім запустіть (замінивши PORT):

SCRIPT_NAME=/status \
SCRIPT_FILENAME=/status \
QUERY_STRING= \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect 127.0.0.1:PORT

Вибірка зразка:

X-Powered-By: PHP/5.3.9
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache, no-store, must-revalidate, max-age=0
Content-Type: text/plain

pool:                 web1
process manager:      dynamic
start time:           28/Jan/2012:20:49:44 -0500
start since:          5955
accepted conn:        41
listen queue:         0
max listen queue:     0
listen queue len:     128
idle processes:       1
active processes:     1
total processes:      2
max active processes: 1
max children reached: 0

Примітка: результати залежать від пулу.

Тестовано на системі RHEL / CentOS 6 з PHP v5.3.9.

(Бічна сторона згадки для людей, які використовують CentOS - пакет, який надається cgi-fcgi, названий fcgiта доступний у EPEL)

Як і в сторону, те ж саме можна досягти і з ping:

Встановити: ping.path = /ping(php-fpm config)

SCRIPT_NAME=/ping\
SCRIPT_FILENAME=/ping\
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect 127.0.0.1:PORT

Або для звичайного файлу PHP (ви повинні використовувати повний шлях, QUERY_STRING не є обов’язковим):

SCRIPT_NAME=/test.php \
SCRIPT_FILENAME=/var/www/path/to/test.php \
QUERY_STRING= \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect 127.0.0.1:PORT

ЦЕ СПРАЦЮВАЛО!!! Я спробував кожну ітерацію (REQUEST_METHOD і DOCUMENT_ROOT та (SCRIPT_NAME або SCRIPT_FILENAME)). Неймовірно дякую
mikewaters
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.