我刚刚从 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_worker
vs mpm_prefork
vs 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
)并且代码也能正确执行。