Akses PHP-FPM's / status halaman secara manual (memotong Apache)

9

Ada bug PHP5.3.3 yang tidak memungkinkan saya untuk melihat halaman php-fpm / status melalui Apache2. Apakah ada cara untuk mengakses data ini secara manual? Saya tidak dapat memutakhirkan kotak (Ubuntu 10.10, php5.3.4 tidak didukung).

Saya sudah mencoba menghubungkan menggunakan teknik di sini: http://inode.co.nz/testing-a-fastcgi-service , tetapi tidak berhasil.

mikewaters
sumber

Jawaban:

12

Dalam rangka untuk memuat halaman status /, Anda harus memiliki variabel lingkungan tertentu yang ditetapkan, khususnya: SCRIPT_NAME, SCRIPT_FILENAME, QUERY_STRING, dan REQUEST_METHOD. Anda tidak perlu DOCUMENT_ROOT(bahkan untuk permintaan normal).

Di bawah kumpulan yang benar (ini bukan pengaturan global) dari set konfigurasi php-fpm Anda (atau batalkan komentar):

pm.status_path = /status

Kemudian jalankan (ganti PORT):

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

Output sampel:

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

Catatan: hasilnya khusus untuk kumpulan.

Diuji pada sistem RHEL / CentOS 6 dengan PHP v5.3.9.

(Sisi penyebutan untuk orang yang menggunakan CentOS - paket yang menyediakan cgi-fcginamanya fcgidan tersedia dari EPEL)

Sebagai tambahan, hal yang sama dapat dicapai dengan ping:

Set: ping.path = /ping(konfigurasi php-fpm)

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

Atau untuk file PHP biasa (Anda harus menggunakan path lengkap, QUERY_STRING adalah opsional):

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
cyberx86
sumber
ITU BEKERJA !!! Saya telah mencoba setiap iterasi (REQUEST_METHOD dan DOCUMENT_ROOT dan (SCRIPT_NAME atau SCRIPT_FILENAME)). Terima kasih banyak.
mikewaters