Nginx で PHP-FPM ステータスを有効にして監視する方法
PHP-FPM (FastCGI Process Manager) は、代替の PHP FastCGI 実装であり、あらゆる規模の Web サイトに役立つ追加機能が多数付属しています。特にトラフィックが多いサイト。
これは一般的に LEMP (Linux Nginx MySQL/MariaDB PHP) スタックで使用されます。 Nginx は、ネットワーク上で動的な HTTP コンテンツを提供するために PHP FastCGI を使用します。これは、インターネット上の Web サーバー上の数百の Web サイトに対する数百万のPHP リクエストを処理するために使用されています。
こちらもお読みください: NGINX ステータス ページを有効にする方法
php-fpm の便利な機能の 1 つは、状態の監視に役立つ組み込みのステータス ページです。この記事では、Linux でPHP-FPM ステータス ページを有効にする方法を説明します。
Linux で PHP-FPM ステータス ページを有効にする方法
まずphp-fpm 設定ファイルを開き、図に示すようにステータス ページを有効にします。
sudo vim /etc/php-fpm.d/www.conf
OR
sudo vim /etc/php/7.2/fpm/pool.d/www.conf #for PHP versions 5.6, 7.0, 7.1
スクリーンショットに示すように、このファイル内で変数 pm.status_path=/status
を見つけてコメントを解除します。
変更を保存してファイルを終了します。
次に、以下のコマンドを実行して、PHP-FPM 構成ファイルにエラーがないか確認します。
sudo php-fpm -t
OR
sudo php7.2-fpm -t
次に、PHP-FPM サービスを再起動して、最近の変更を適用します。
sudo systemctl restart php-fpm
OR
sudo systemctl restart php7.2-fpm
次に、 デフォルトのサーバー ブロック (仮想ホスト) 構成ファイルを編集し、以下のロケーション ブロックを追加します。たとえば、テスト システムでは、サイト test.lab のデフォルトのサーバー ブロックの設定ファイルは /etc/nginx/conf.d/default.conf です。
sudo vim /etc/nginx/conf.d/default.conf
こちらが追加するロケーションブロックです。この設定では、セキュリティ上の理由から、ディレクティブ allow 127.0.0.1 を使用してローカルホスト内のPHP-FPM プロセス ステータスへのアクセスのみを許可しています。
location ~ ^/(status|ping)$ {
allow 127.0.0.1;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php7.2-fpm.sock;
}
ファイルを保存して閉じます。
次に、Nginx サーバーを再起動して、上記の変更を適用します。
sudo systemctl restart nginx
次に、ブラウザを開いて URL http://test.lab/status
を入力して、PHP-FPM プロセスのステータスを表示します。
あるいは、次のようにcurlプログラムを使用します。-L
フラグはページの場所を指定します。
curl -L http://test.lab/status
デフォルトでは、ステータス ページには概要または短いステータスのみが出力されます。各プール プロセスのステータスを表示するには、クエリ文字列に「full 」 を渡します。たとえば、次のようになります。
http://www.foo.bar/status?full
図に示すように、出力形式 (JSON、HTML、または XML) を定義できます。
http://www.foo.bar/status?json&full
http://www.foo.bar/status?html&full
http://www.foo.bar/status?xml&full
以下は、各プロセスのphp-fpm の完全なステータスで返される値です。
- pid – プロセスの PID。
- プロセスのステータスを状態にします (アイドル、実行中など)。
- 開始時刻 – プロセスが開始された日時。
- 開始以降 – プロセスが開始されてからの秒数。
- リクエスト – プロセスが処理したリクエストの数。
- リクエスト期間 – リクエストの期間 (μs)。
- リクエスト メソッド – リクエスト メソッド (GET、POST など)。
- リクエスト URI – クエリ文字列を含むリクエスト URI。
- コンテンツの長さ – リクエストのコンテンツの長さ (POST の場合のみ)。
- ユーザー – ユーザー (PHP_AUTH_USER) (設定されていない場合は「-」)。
- スクリプト – 呼び出されるメインスクリプト (設定されていない場合は「-」)。
- 最後のリクエストの cpu – % 最後のリクエストが消費した cpu (プロセスがアイドル状態でない場合は常に 0 であることに注意してください)。
- 最後のリクエスト メモリ – 最後のリクエストが消費したメモリの最大量 (プロセスがアイドル状態でない場合は常に 0)。
今のところはここまでです!この記事では、Nginx Web サーバーでphp-fpm ステータス ページを有効にする方法を説明しました。以下のフィードバック フォームを使用して、ご意見をお聞かせください。