【发布时间】:2011-09-07 16:46:08
【问题描述】:
我可以从哪里获得有关我的 Linux 系统中使用哪种 MPM Apache 的信息?
【问题讨论】:
我可以从哪里获得有关我的 Linux 系统中使用哪种 MPM Apache 的信息?
【问题讨论】:
httpd -V
然后查找Server MPM 行。
例子:
# httpd -V
Server version: Apache/2.2.15 (Unix)
Server built: Aug 2 2013 08:02:15
Server's Module Magic Number: 20051115:25
Server loaded: APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
【讨论】:
apache2 -V。
apache2 -V 看起来不像上面的输出(对我来说),但是 apachectl -V 可以。
注意到之前的答案没有提到apachectl!
[dlam@some-ubuntu-box~] $apachectl -V | grep -i mpm
服务器 MPM:事件
--
[dlam@some-fedora-box:~] $httpd -V | grep -i mpm
服务器 MPM:预分叉
【讨论】:
/usr/sbin/apache2 -l 在输出中查找 worker.c、prefork.c 或 event.c,因为其中只有一个会出现,表明您的 apache2 正在使用的相应 MPM 模块。
a2query -M 在Ubuntu 上工作
在 Ubuntu 14.04 中
a2query -M
告诉event、prefork、worker
您可以通过在/etc/apache2 中添加mpm_<chosen> 的符号链接从mods-available 到mods-enabled 来更改它。
一次只允许一个。
【讨论】:
您可以通过检查哪些模块使用 Apache 编译来查看这一点。
查看以下命令的输出:
# httpd -l
从那里寻找prefork.c。
【讨论】:
如果是linux的话,默认应该是prefork。阅读here 了解有关 apache mpm 的更多信息。
【讨论】: