ウェブサイト検索

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 ステータス ページを有効にする方法を説明しました。以下のフィードバック フォームを使用して、ご意見をお聞かせください。