“没有加载 MPM”,但我甚至没有使用 mpm

“没有加载 MPM”,但我甚至没有使用 mpm

在 Vagrant 中在 Ubuntu Precise64 上运行 Apache2。当我尝试启动它时,它显示:

vagrant@precise64:/etc/apache2$ /etc/init.d/apache2 start
 * Starting web server apache2
 *
 * The apache2 configtest failed.
Output of config test was:
AH00534: apache2: Configuration error: No MPM loaded.
Action 'configtest' failed.
The Apache error log may have more information.

但问题是,我的/etc/apache2/apache2.conf文件根本没有在任何地方调用 MPM!我本想将其粘贴到这里,但这会占用很大的篇幅……

我尝试查找错误日志,但也没找到。帮忙吗?

编辑: apache2 -l给出这个:

vagrant@precise64:/$ apache2 -l  
Compiled in modules:             
  core.c                         
  mod_so.c                       
  mod_watchdog.c                 
  http_core.c                    
  mod_log_config.c               
  mod_logio.c                    
  mod_version.c                  
  mod_unixd.c                    
  mod_unixd.c                    

所以看起来好像没有安装 mpm,对吗?如果没有安装 MPM,并且我的配置文件中没有提到 MPM,为什么我仍然看到此错误?

答案1

apache2 -t -D DUMP_MODULES(或 -M)应该会为您提供模块列表。您应该会看到 worker.c 或 prefork.c 或 event.c。使用它来确定您正在使用哪个 MPM。

查看你的配置文件是否有类似的内容(如果你使用 prefork MPM)。

以下是一个例子:

<IfModule mpm_prefork_module>
StartServers          5
MinSpareServers       5
MaxSpareServers      10
MaxClients          150
MaxRequestsPerChild   0
</IfModule>

将类似这样的块添加到您的配置文件中,它应该可以工作。验证 apache2-mpm-prefork(或 worker,或 event)是否已正确安装。

阅读此文档可以帮助您选择(强制性的)适合您用途的 MPM:http://httpd.apache.org/docs/2.2/mpm.html

答案2

我遇到了同样的问题。我不小心覆盖了/etc/apache2/apache2.conf。为了纠正这个问题,我必须运行sudo apt-get purge apache2以完全删除 apache,然后运行sudo apt-get install apache2以恢复原始apache2.conf文件。

笔记:清除之前备份所有自定义文件/etc/apache2/sites-available

相关内容