切换 Apache 的 MPM(多处理模块)模式后,可以通过以下几种方法验证配置是否生效:
Apache 提供了查看编译和运行时配置的命令,直接显示当前启用的 MPM:
- 输出结果中会显示类似
mpm_event_module (shared)
、mpm_worker_module (shared)
或 mpm_prefork_module (shared)
的内容,表明当前启用的 MPM 模式。
- 例如,若启用
event
模式,会显示 mpm_event_module (shared)
。
通过 httpd -V
命令查看 Apache 的编译和运行时参数,其中包含 MPM 信息:
在输出结果中,寻找包含 Server MPM
的行,例如:
这行直接显示了当前使用的 MPM 模式。
不同 MPM 模式的进程 / 线程表现不同,可通过系统命令验证:
ps -ef | grep httpd | wc -l
prefork
模式下,httpd
进程数会随并发请求增加,且每个进程只处理一个连接(无线程共享)。
ps -T -p $(pgrep httpd | head -n 1)
若配置有误,Apache 重启时会报错,可通过日志确认是否成功加载目标 MPM:
-
重启 Apache:
sudo systemctl restart httpd
-
检查是否重启成功:
sudo systemctl status httpd
若状态为 active (running)
,说明配置无语法错误。
-
查看错误日志(若重启失败):
sudo tail -f /var/log/httpd/error_log
若 MPM 配置冲突(如同时启用多个 MPM),日志中会明确提示错误原因(例如 Only one MPM loaded at a time
)。
最直接有效的方法是 httpd -M | grep mpm
或 httpd -V
,可快速确认当前启用的 MPM 模式。若配置未生效,通常是因为未正确注释其他 MPM 模块或配置文件路径错误,需重新检查 /etc/httpd/conf.modules.d/00-mpm.conf
(CentOS 路径)中的设置。