php-fpmのステータスをブラウザから簡単に見る方法のまとめ。プロセスがactiveなのかidleなのかをひとめでみることができるのでかなり便利。
設定の仕込み(php-fpm)
・ファイルパスなどは環境によって読み替え
・コメント解除だけでも大丈夫だが、アクセス時のパスを変えたい場合は変更しても大丈夫
# vi /etc/php-fpm.d/www.conf
;pm.status_path = /status
↓
pm.status_path = /php-fpm/status
# systemctl restart php-fpm
設定の仕込み(apache)
・アクセス制限は設けておいたほうがよい
# vi /etc/httpd/conf/httpd.conf
### unixドメインソケットの場合
<LocationMatch /php-fpm/status>
SetHandler "proxy:unix:/var/opt/remi/php71/run/php-fpm/www.sock|fcgi://localhost"
Require all denied
Require ip 192.168.0.1
</LocationMatch>
### TCPの場合
<LocationMatch /php-fpm/status>
ProxyPass fcgi://127.0.0.1:9000
Require all denied
Require ip 192.168.0.1
</LocationMatch>
# systemctl restart httpd
動作確認
ブラウザでアクセス( 例 https://www.piteki.com/php-fpm/status )すると以下のようなものが表示される
pool: www
process manager: dynamic
start time: 13/May/2021:16:22:42 +0900
start since: 2936
accepted conn: 150
listen queue: 0
max listen queue: 0
listen queue len: 0
idle processes: 2
active processes: 1
total processes: 3
max active processes: 3
max children reached: 0
slow requests: 0
さらに便利なもの
・apacheでは以下の様に追加。ファイルをどこかに持って行ってもらっても大丈夫。
・さきほどと同様にアクセス制限
※phpのインストールの仕方でstatus.htlmの場所が違う時は探してください。
例)rhel8 module php74 の場合はコレ「/usr/share/fpm/status.html」でした。
# vi /etc/httpd/conf/httpd.conf
Alias /php-fpm/realtime-monitor "/opt/remi/php71/root/usr/share/fpm/status.html"
<Directory /opt/remi/php71/root/usr/share/fpm>
Options +ExecCGI
Require all denied
Require ip 192.168.0.1
</Directory>
# systemctl restart httpd
・上記だけだと毎回パスを変えないといけないので、以下のように編集しておくと便利
# vi /opt/remi/php71/root/usr/share/fpm/status.html
doc_url.value = location.protocol + '//' + location.host + "/status?json&full";
↓
doc_url.value = location.protocol + '//' + location.host + "/php-fpm/status?json&full";
ブラウザでアクセス( https://www.piteki.com/php-fpm/realtime-monitor )すると以下のようなものが表示される。RefreshRateを変更してplayするとその時間間隔で表示が自動更新される。
コメント
Very good information. Lucky me I discovered your site by chance (stumbleupon).
I have saved it for later!