apacheがpreforkまたはworkerとして実行されている(または実行するように構成されている)ことを確認するにはどうすればよいですか?
apacheがpreforkまたはworkerとして実行されている(または実行するように構成されている)ことを確認するにはどうすればよいですか?
回答:
MPMはコンパイル時に構成されます。後でそれを把握する1つの方法は、コンパイルされたモジュールをリストすることです。そのリストには、選択したMPMが含まれます。リストは、-lフラグを使用してapacheバイナリを実行することで実行できます。
andreas@halleck:~$ apache2 -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
worker.c
http_core.c
mod_so.c
andreas@halleck:~$
ここで、worker.cモジュールを見つけたため、ワーカーMPMを実行しています。
apache2ctl -Mアクティブなモジュールを一覧表示するために使用できます。
Series8217とAndolの回答はどちらも間違っています。
問題は、Apacheがpreforkまたはworkerを実行しているかどうかを確認する方法でした。他の回答によって与えられたアドバイスは、デフォルトの MPMが何であるか(コンパイルされたモジュールに基づいて)を伝えるだけであり、現時点でそのデフォルトまたは別の選択肢が使用されている場合ではありません。
httpd -Vpreforkが表示される場合、preforkがコンパイル済みのデフォルトMPMであることを意味します。このプロセスに示されているように、Apache構成ファイルの設定を変更することでオーバーライドできます。
/etc/sysconfig/httpdCentOS / RedHatなど)HTTPD=/usr/sbin/httpd.worker実際に実行されているMPMは、このプロセスを使用して表示できます。
curl localhost/server-infohttpd -Vもう一度実行します-ワーカーではなくプリフォークが表示されます結論:
httpd -V どのオプションが実際に使用されているかではなく、デフォルトのオプションを表示しますhttpd -VApacheがpreforkまたはworkerを実行しているかどうかを判断するために使用するという多くの多くのWebサイトに回答があります。彼らはすべて間違っています。上記の手順を試して、自分で確認してください。
Ubuntu 14.04で
a2query -M
指示しますevent、prefork、worker
mpm_<chosen>from mods-availableからmods-enabledinのシンボリックリンクを追加することで変更できます/etc/apache2。
一度に1つだけ許可されます。
eventMPMは、Apacheのサイトによると、「唯一のアクティブな処理との接続のためのスレッドを消費することを目標に、労働者のMPMの変異体」です。
RHEL / Fedora / etcで、を実行しhttpd -Vます。次のような出力が得られます。
Server version: Apache/2.2.21 (Unix)
...
Architecture: 64-bit
Server MPM: Prefork
...
ここで「Server MPM」は「Prefork」なので、私のサーバーはprefork MPMを実行しています。
使用中のMPMを判別する際に信頼できるはずの別の方法を次に示します。に次を追加しますhttpd.conf。
<IfModule prefork.c>
Header append X-MPM prefork
</IfModule>
<IfModule worker.c>
Header append X-MPM worker
</IfModule>
次に、を使用してヘッダーを確認しcurl -I localhost | grep X-MPMます。
centos(またはrhel)では、次のコマンドを実行できます。
ps -ef | grep httpd
あなたが見るならば/usr/sbin/httpd.worker実行されている、それは労働者のMPMを使用しています。あなたが表示された場合は/usr/sbin/httpd実行されている、それはpreforkのを使用しています
クリス・ジョンソンの答えは正しいです。
Apacheドキュメント(http://httpd.apache.org/docs/2.2/mod/mod_info.html)に記載されているように、infoモジュールを有効にした後、この1つのライナーにより、使用しているMPMが提供されます。
links -dump http://localhost/server-info/?server | grep "MPM Name"