PHP-FPMの/ statusページに手動でアクセスする(Apacheをバイパスする)


9

PHP5.3.3のバグがあり、Apache2経由でphp-fpmの/ statusページを表示できません。このデータに手動でアクセスする方法はありますか?ボックスをアップグレードできません(Ubuntu 10.10、php5.3.4はサポートされていません)。

私はここでテクニックを使用して接続を試みました:http : //inode.co.nz/testing-a-fastcgi-service、しかし運がありません。

回答:


12

/ステータスページをロードするためには、あなたが特定の環境変数は、具体的には、設定されている必要がありますSCRIPT_NAMESCRIPT_FILENAMEQUERY_STRING、とREQUEST_METHODDOCUMENT_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

注:結果はプール固有です。

PHP v5.3.9を使用したRHEL / CentOS 6システムでテスト済み。

(CentOSを使用している人々のためのサイドポイント-提供するパッケージcgi-fcgifcgiEPELから命名され、利用可能です)

余談ですが、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 2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.