Apache 2.4 因与模块 mpm_prefork 冲突而无法继续

Apache 2.4 因与模块 mpm_prefork 冲突而无法继续

我刚刚从 12.04 更新到 14.04,现在设置 Apache 2.4 时遇到困难,出现以下错误:

Setting up apache2 (2.4.10-1+deb.sury.org~trusty+1) ...
ERROR: Module mpm_prefork is enabled - cannot proceed due to conflicts. It needs to be disabled first!
dpkg: error processing package apache2 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 apache2
E: Sub-process /usr/bin/dpkg returned an error code (1)

我如何禁用 mpm_prefork 以便 Apache 可以继续运行?

答案1

我将使用适当的命令来禁用 Apache 中的模块:

sudo a2dismod mpm_prefork

答案2

您应该尝试删除符号链接/etc/apache2/mods-enabled/mpm_prefork.{conf,load}

rm /etc/apache2/mods-enabled/mpm_prefork.{conf,load}

然后重新启动包的配置apache2

apt-get install -f

或者:

apt-get install apache2

但更重要的是,你应该问问自己这些是如何安装在那里的。你可能在启动之前复制了一个/etc/apache2包含这些内容的旧目录(例如)apt-get install apache2

答案3

这个模块显然有三个不同版本mpm_workervs mpm_preforkvs mpm_event),错误代码可能会产生误导。请尝试禁用所有三个变体,然后重新安装。就我的情况(Mint 19.1/Ubuntu 18.04,php7.2)而言,第三个是:

root@machine:/var/www/html# sudo a2dismod mpm_worker
Module mpm_worker already disabled
root@machine:/var/www/html# sudo a2dismod mpm_prework
ERROR: Module mpm_prework does not exist!
root@machine:/var/www/html# sudo a2dismod mpm_event
Module mpm_event disabled.

此后,安装 apache php mod 就可以起作用了(sudo a2enmod php7.2)并且代码也能正确执行。

相关内容