Ubuntu 14.04 中Apache从2.2升级到到2.4出错解决办法

访问控制的改变

从Apache 2.4起所启用授权机制比起2.2的只是针对单一数据存储的单一检查更加灵活。过去很难确定哪个 order 授权怎样被使用的,但是授权容器指令的引入解决了这些问题,现在,配置可以控制什么时候授权方法被调用,什么条件决定何时授权访问。

这就是为什么大多数的升级失败是由于配置错误的原因。2.2的访问控制是基于IP地址、主机名和其他角色,通过使用指令Order,来设置Allow, Deny或 Satisfy;但是2.4,这些一切都通过新的授权方式进行检查。

为了弄清楚这些,可以来看一些虚拟主机的例子,这些可以在/etc/apache2/sites-enabled/default 或者 /etc/apache2/sites-enabled/你的网站名称 中找到:

旧的2.2虚拟主机配置:

    Order allow,deny
    Allow from all

新的2.4虚拟主机配置:

    Require all granted

(LCTT 译注:Order、Allow 和 deny 这些将在之后的版本废弃,请尽量避免使用,Require 指令已可以提供比其更强大和灵活的功能。)

.htaccess 问题

升级后如果一些设置不工作,或者你得到重定向错误,请检查是否这些设置是放在.htaccess文件中。如果Apache 2.4没有使用 .htaccess 文件中的设置,那是因为在2.4中AllowOverride指令的默认是 none,因此忽略了.htaccess文件。你只需要做的就是修改或者添加AllowOverride All命令到你的网站配置文件中。

上面截图中,可以看见AllowOverride All指令。

丢失配置文件或者模块

根据我的经验,这次升级带来的另一个问题就是在2.4中,一些旧模块和配置文件不再需要或者不被支持了。你将会收到一条“Apache不能包含相应的文件”的明确警告,你需要做的是在配置文件中移除这些导致问题的配置行。之后你可以搜索和安装相似的模块来替代。

其他需要了解的小改变

这里还有一些其他的改变需要考虑,虽然这些通常只会发生警告,而不是错误。

    MaxClients重命名为MaxRequestWorkers,使之有更准确的描述。而异步MPM,如event,客户端最大连接数不等于工作线程数。旧的配置名依然支持。
    DefaultType命令无效,使用它已经没有任何效果了。如果使用除了 none 之外的其它配置值,你会得到一个警告。需要使用其他配置设定来替代它。
    EnableSendfile默认关闭
    FileETag 现在默认为"MTime Size"(没有INode)
    KeepAlive 只接受“On”或“Off”值。之前的任何不是“Off”或者“0”的值都被认为是“On”
    单一的 Mutex 已经替代了 Directives AcceptMutex, LockFile, RewriteLock, SSLMutex, SSLStaplingMutex 和 WatchdogMutexPath 等指令。你需要做的是估计一下这些被替代的指令在2.2中的使用情况,来决定是否删除或者使用Mutex来替代。

时间: 2024-09-27 00:37:50

Ubuntu 14.04 中Apache从2.2升级到到2.4出错解决办法的相关文章

在 Ubuntu 14.04 中Apache从2.2迁移到2.4的问题

在 Ubuntu 14.04 中Apache从2.2迁移到2.4的问题 如果你将Ubuntu从12.04升级跨越到了14.04,那么这其中包括了一个重大的升级--Apache从2.2版本升级到2.4版本.Apache的这次升级带来了许多性能提升,但是如果继续使用2.2的配置文件会导致很多错误. 访问控制的改变 从Apache 2.4起所启用授权机制比起2.2的只是针对单一数据存储的单一检查更加灵活.过去很难确定哪个 order 授权怎样被使用的,但是授权容器指令的引入解决了这些问题,现在,配置可

小技巧:在Ubuntu 14.04中重置Unity和Compiz设置

小技巧:在Ubuntu 14.04中重置Unity和Compiz设置 如果你一直在试验你的Ubuntu系统,你可能最终以Unity和Compiz的一片混乱收场.在此贴士中,我们将看看怎样来重置Ubuntu 14.04中的Unity和Compiz.事实上,全部要做的事,仅仅是运行几个命令而已. 重置Ubuntu 14.04中的Unity和Compiz 打开终端(Ctrl+Alt+T),并使用以下命令来重置compiz: dconf reset -f /org/compiz/ 重置compiz后,重

修复Ubuntu 14.04中Chromium的Adobe Flash Player的问题

修复Ubuntu 14.04中Chromium的Adobe Flash Player的问题 安装Ubuntu 14.04之后,先要做的几件事情中其中一项是安装Adobe Flash Player.一般来说,如果安装了Ubuntu Restricted Extras,Flash Player应该可以工作而且你应该能够在网上观看在线视频,比如You Tube等网站上. 其实这不是因为Chromium是在Ubuntu 14.04上使用才出现的问题.当你用其他的网页浏览器比如火狐.Chrome时,你可以

如何在Ubuntu 14.04中安装最新版Eclipse

想必很多开发人员都知道,Ubuntu 软件源中提供的并不是最新版本的 Eclipse,本教程就教大家如何在 Ubuntu 14.04 中快速安装 Eclipse 官方发布的最新版本. 到目前为止,Eclipse 的官方最新版本为 Eclipse Kepler (4.3.2),我们可以使用如下步骤在 Ubuntu 14.04 或其它 Ubuntu 版本中进行快速安装. 1.安装OpenJDK Java 7 如果你的系统中没有安装 Java,我们需要按如下步骤事先安装好 OpenJDK Java 7

Ubuntu 14.04中修复默认启用HDMI后没有声音的问题

Ubuntu 14.04中修复默认启用HDMI后没有声音的问题 声音问题在Ubuntu中是老生常谈了.先前我已经在修复Ubuntu中的"无声"问题一文中写到了多种方法,但是我在此正要谈及的声音问题跟在另外一篇文章中提到的有所不同. 因此,我安装了Ubuntu 14.04,实际上是重新安装了一遍.一如既往,我将全新安装Ubuntu 14.04后要做的事全部又重新做了一遍.然后,我意识到系统突然失声了.当我正侦查问题所在之时,我发现了一件奇怪的事情.我检查了alsamixer,发现它的状况

[小白技巧]如何在Ubuntu 14.04中添加多个时区时间

[小白技巧]如何在Ubuntu 14.04中添加多个时区时间 如果你需要和多时区时间打交道的话,你一定希望你的电脑时钟可以显示多个时区的时间.作为一个移居国外的人,我需要关注法国和印度的时间.在Ubuntu系统中,你可以进行简易的设置来添加多时区时间. 在这次的使用技巧中,我们会了解到 如何在Ubuntu 14.04系统中添加多时区时间. 在Ubuntu 14.04系统中添加多时区时间 打开系统设置(按下标有微软徽标的按键,在Dash中搜索"系统设置"),进入"时间&

在Ubuntu 14.04 中修复无法清空回收站的问题

在Ubuntu 14.04 中修复无法清空回收站的问题 问题 我遇到了无法在Ubuntu 14.04中清空回收站的问题.我右键回收站图标并选择清空回收站,就像我一直做的那样.我看到进度条显示删除文件中过了一段时间.但是它停止了,并且Nautilus文件管理也停止了.我不得不在终端中停止了它. 但是这很痛苦因为文件还在垃圾箱中.并且我反复尝试清空后窗口都冻结了. 方案 老实说,我不知道什么导致了这个问题.但是我有一个解决方案如果你在Ubuntu 14.04或者14.10遇到这个问题的话. 打开终端

[小白技巧]在Ubuntu 14.04中,如何从Unity启动器上移除盘符图标

[小白技巧]在Ubuntu 14.04中,如何从Unity启动器上移除盘符图标 一个读者发来的问题:在Ubuntu 14.04系统中,我如何从Unity启动器上移除这些盘符图标?我从来不使用它,然而它占用着启动器的位置. 默认情况下,无论你挂载与否,系统上所有分区的盘符图标都会显示在Unity启动器上.事实上它可能会使 Unity 启动器的位置变得拥挤.刚刚接触 Ubuntu 的小白可能对如何将这些盘符移去感觉比较困扰,但是实际上这很容易. 要从Ubuntu 14.04系统的Untiy启动器上永

ubuntu 14.04设置Apache虚拟主机的方法

 在这个教程中,我会使用Ubuntu 14.04 32位 LTS,并搭建2个测试网站分别命名为"unixmen1.local" 和 "unixmen2.local".我的测试机分别为192.168.1.250/24和server.unixmen.local.你可以根据你的需要更改虚拟域名. 安装Apache网站服务器 安装apache服务器之前,我们来更新一下我们的Ubuntu服务器: sudo apt-get update然后,用下面命令来安装apache网络服务