私はnginx + php-fpmを実行しています。 PHPプロセスのそれぞれが何をしているかを知る方法はありますか?何かmod_statusがapacheで拡張されたようなものです。ここで、PID xを持つapacheプロセスがURL yを処理していることがわかります。私は、PHPプロセスがURLを知っているかどうかはわかりませんが、スクリプトのパスと名前を取得するだけで十分です。PHP-FPMプロセスで実行されているスクリプトを特定する方法
答えて
。 PHP 5.3.8または5.3.9以降で利用可能ですが、文書化されていないようです。機能要求#54577に基づいて、ステータスページはオプションfull
をサポートし、各ワーカーのステータスを個別に表示します。例えばURLがhttp://server.com/php-status?full
となり、サンプル出力は、のように見えます:
pid: 22816
state: Idle
start time: 22/Feb/2013:15:03:42 +0100
start since: 10933
requests: 28352
request duration: 1392
request method: GET
request URI: /ad.php?zID=597
content length: 0
user: -
script: /home/web/server.com/ad/ad.php
last request cpu: 718.39
last request memory: 1310720
PHP-FPMにはステータスモニタが組み込まれていますが、mod_statusの詳細とは異なります。 (CentOSの6上)のphp-FPM configファイルの/etc/php-fpm.d/www.conf
から
; The URI to view the FPM status page. If this value is not set, no URI will be
; recognized as a status page. By default, the status page shows the following
; information:
; accepted conn - the number of request accepted by the pool;
; pool - the name of the pool;
; process manager - static or dynamic;
; idle processes - the number of idle processes;
; active processes - the number of active processes;
; total processes - the number of idle + active processes.
; The values of 'idle processes', 'active processes' and 'total processes' are
; updated each second. The value of 'accepted conn' is updated in real time.
; Example output:
; accepted conn: 12073
; pool: www
; process manager: static
; idle processes: 35
; active processes: 65
; total processes: 100
; By default the status page output is formatted as text/plain. Passing either
; 'html' or 'json' as a query string will return the corresponding output
; syntax. Example:
; http://www.foo.bar/status
; http://www.foo.bar/status?json
; http://www.foo.bar/status?html
; Note: The value must start with a leading slash (/). The value can be
; anything, but it may not be a good idea to use the .php extension or it
; may conflict with a real PHP file.
; Default Value: not set
;pm.status_path = /status
このオプションを有効にした場合は、その後、PHP-FPMのためnginxのからあなたのソケット/ポートへのパスを渡すことができますし、ステータスページを表示することができます。
nginx.conf:私は解決策を発見したいくつかのグーグルで時間と閲覧PHP.netバグ追跡システムの後
location /status {
include fastcgi_params;
fastcgi_pass unix:/var/lib/php/php-fpm.sock;
}
CGIコマンドラインは、よりにconvinientです:
SCRIPT_NAME=/status \
SCRIPT_FILENAME=/status \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect 127.0.0.1:9000
OPが探しているものを返すには、 'QUERY_STRING = full'を追加する必要があることにも注意してください。 'SCRIPT_FILENAME'を'/status?full'に変更することはできません。 – Isius
'pm.status_path'のコメントを外してステータスページを有効にする必要があります。この方法の利点は、Webサーバーによって公開される必要がないことです。 'SCRIPT_NAME'と' SCRIPT_FILENAME'は 'php-fpm.conf'ファイルの' pm.status_path'と同じでなければなりません。その最後のパラメータ( '127.0.0.1:9000')はFCGIサーバへの接続です。ウェブサーバではなく、同じINIファイル内の' listen'パラメータと同じでなければなりません。ソケットの場合、 'sudo'を使用して接続する必要があります。その場合は' -E'を使って 'sudo'に環境変数を' cgi-fcgi'に渡すよう指示します。 – Wolfgang
- 1. 特定のユーザーアカウントで実行されている特定のプロセスを強制終了する方法
- 2. ノードプロセスが実行されているスクリプトを特定する
- 3. 特定のプロセスを実行しているPHPスクリプトを追跡するには?
- 4. 特定のページのみでスクリプトを実行する方法 - jQuery
- 5. EMR内の特定のインスタンスグループでスクリプトを実行する方法
- 6. 特定のプロセスが実行されているプロセッサの数を取得
- 7. 私のアプリケーションが実行されているiPhoneを特定する方法は?
- 8. プロセスが実行されているかどうかを確認するpowershellスクリプト
- 9. 端末でスクリプトを実行するプロセス
- 10. JSスクリプトがワーカーとして実行されているときの特定
- 11. プロセスが実行されているコアを制御する方法は?
- 12. リモートウィンドウサーバーでプロセスを実行する方法
- 13. Linuxでプロセスが実行されているPHPスクリプトを知るにはどうすればよいですか?
- 14. どのプロセスが実行されているかを見つける方法
- 15. node.jsプロセスをチェックする方法はプロセス名で実行されていますか?
- 16. Jenkinsで最も頻繁に実行されるジョブを特定する方法を教えてください。
- 17. PyCharmでスクリプトを実行する方法を指定する
- 18. Windowsのカーネルレベルで実行されるプロセスの作成方法は?
- 19. 特定のドキュメントで特定のプロセスを閉じる方法C#
- 20. Camunda - 特定の順序でプロセスを実行する
- 21. MATLABスクリプトで定義されていない関数をすべて特定する方法
- 22. Excelで実行されているマクロコードの特定
- 23. C#で特定のコードが実行されている
- 24. JS、実行されている場合にプロセスの実行を停止する方法...?
- 25. プロセスにバインドされているUnixポートを特定します。
- 26. Windowsでプロセスによって実行された特定のシステムコールの監視
- 27. 特定の部門のスクリプトを実行してスクリプトを実行します
- 28. 特定のユーザーログオンで実行されている1つのプロセスのすべてのインスタンスを数える最善の方法は何ですか?
- 29. ドッカーマシンでスクリプトを実行する方法
- 30. スクリプトをバックグラウンドで実行する方法
別の非常に便利なオプションは、?htmlです。例えば:http://server.com/php-status?full&html(出力をHTMLテーブルとしてフォーマットします。これにより、実行中のすべてのスクリプトを一度に見るのがずっと簡単になります) – ivanhoe
how私はそれにアクセスすることができますshoud私はnginxの設定に任意のパラメータを追加しますか? –
@babakfaghihianはい、そのURL(たとえば/ php-status')をphp-fpmに渡す必要があります。 – Marki555