![Ubuntu 14.04 升级导致 Apache2 崩溃](https://linux22.com/image/1406233/Ubuntu%2014.04%20%E5%8D%87%E7%BA%A7%E5%AF%BC%E8%87%B4%20Apache2%20%E5%B4%A9%E6%BA%83.png)
我刚刚升级到 ubuntu 14.04,现在 apache2 无法启动,出现错误:
root@dennisHome:~# /etc/init.d/apache2 restart
* Restarting web server apache2
...fail!
* The apache2 configtest failed.
配置测试的输出是:
apache2: Syntax error on line 244 of /etc/apache2/apache2.conf:
Syntax error on line 1 of /etc/apache2/mods-enabled/authz_default.load: Cannot load /usr/lib/apache2/modules/mod_authz_default.so into server:
/usr/lib/apache2/modules/mod_authz_default.so: cannot open shared object file: No such file or directory
Action 'configtest' failed.
The Apache error log may have more information
看起来 mod_authz_default.so 不再存在了,我该怎么做才能解决这个问题?
答案1
在升级到 Ubuntu 14.04 时,您还将转到 Apache 2.4(可能从 2.2 开始)。这不是一个微不足道的变化,您会发现这里这需要调整的列表。您将看到有一些工作要做。特别是,该页面指出(除其他事项外):
这些模块已被删除:mod_authn_default、mod_authz_default、mod_mem_cache。
这就是您收到上述错误消息的原因。您可以尝试注释掉有问题的行,即 apache.conf 的第 244 行,看看您的系统是否可以通过这种方式(但我对此表示怀疑)。
答案2
如果你的模块是从 mods-enabled 目录自动加载的,那么有问题的行很可能位于你的 conf 文件的此部分:
# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
在这种情况下,您需要转到启用 mods 的目录(/etc/apache2/mods-enabled
默认)并删除该authz_default.load
文件的符号链接。
这是因为 mods-enabled 中的符号链接将指向 mods-available 中的文件,而该文件在 Apache 2.4 中不再存在。