![尝试在 Vagrant Ubuntu 框上启动 apache 时“已加载多个 MPM”](https://linux22.com/image/646444/%E5%B0%9D%E8%AF%95%E5%9C%A8%20Vagrant%20Ubuntu%20%E6%A1%86%E4%B8%8A%E5%90%AF%E5%8A%A8%20apache%20%E6%97%B6%E2%80%9C%E5%B7%B2%E5%8A%A0%E8%BD%BD%E5%A4%9A%E4%B8%AA%20MPM%E2%80%9D.png)
每当我尝试时,sudo apache2ctl start
我都会收到以下消息:
AH00534: apache2: Configuration error: More than one MPM loaded.
Action '-k restart' failed.
The Apache error log may have more information.
当我检查时/var/log/apache2/error.log
,没有此错误的条目。唯一包含的 mods 似乎在 中/etc/apache2/mods-enabled/
,而我看到的与“mpm”相关的所有条目是:
- mpm_prefork 配置文件
- mpm_prefork.load
在 中/etc/apache2/mods-available/
列出了以下内容:
- mpm_event.conf
- mpm_event.load
- mpm_prefork 配置文件
- mpm_prefork.load
- mpm_worker.conf
- mpm_worker.load
但是,我的apache2.conf
文件没有加载 mods-available 目录中的文件。
这对我来说是个新领域,所以我可能完全找错了地方。提前感谢你的帮助!
答案1
这在 Apache v2.2(问题被标记为)中不会发生,它只能发生在 Apache v2.4 中,您可以在其中将这三个编译MPMs
为动态可加载模块。
在所有配置文件中搜索以下三行。路径当然可能不同,具体取决于您的安装。实际上只能加载这三个模块中的一个。如果存在多个模块并且未注释,您将收到您提到的错误:
# Only *ONE* of these modules may be uncommented in a valid configuration
LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule mpm_worker_module modules/mod_mpm_worker.so
如果你设法获得了一个 Apache 安装,并且其中一个MPMs
编译到了 httpd 二进制文件中和使用一个或多个MPMs
作为可加载模块,那么你也可能会得到这个。
运行/path/to/httpd -l
以查看是否有MPM
内置,然后像以前一样搜索上述行