Apache 将httpd.conf从2.2版升级到2.4版

Apache 将httpd.conf从2.2版升级到2.4版,apache,configuration,Apache,Configuration,我有一个问题,我不小心从Apache 2.2升级到了2.4,现在需要更改httpd.conf文件以使用新的Require指令,而不是使用旧的Order和Allow指令。我想我已经做了所有我需要的改变,但是有一部分我不确定我应该用什么来代替它。这是一节: <FilesMatch "^\.ht"> Order allow,deny Deny from all Satisfy All </FilesMatch> 命令允许,拒绝 全盘否定 满足所有

我有一个问题,我不小心从Apache 2.2升级到了2.4,现在需要更改httpd.conf文件以使用新的Require指令,而不是使用旧的Order和Allow指令。我想我已经做了所有我需要的改变,但是有一部分我不确定我应该用什么来代替它。这是一节:

<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

命令允许,拒绝
全盘否定
满足所有
这种秩序、拒绝和满足的结合让我感到困惑,因为我是一个新手。要完成相同的任务,正确的2.4配置是什么。我试着用谷歌搜索答案并搜索了这个网站,但没有找到任何东西(可能使用了错误的术语——我不知道)。如果有一些古鲁能提供一些帮助,我们将不胜感激


谢谢

Apache2.4中的习惯用法发生了变化。
通读“从2.2升级到2.4”

查找以下条目:

2.2 configuration:   
Order deny,allow   
Deny from all

2.4 configuration:   
Require all denied

在您的情况下,不再需要
满足所有

v2.2

# The following lines prevent .htaccess and .htpasswd files from being 
# viewed by Web clients. 
<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>
#以下几行阻止.htaccess和.htpasswd文件被删除
#由Web客户端查看。
命令允许,拒绝
全盘否定
满足所有
v2.4:

# The following lines prevent .htaccess and .htpasswd files from being 
# viewed by Web clients. 
<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>
#以下几行阻止.htaccess和.htpasswd文件被删除
#由Web客户端查看。
要求全部拒绝

以下是我在升级后为使Apache恢复运行所做的工作:

  • 使用“etc/apache2”目录中新安装的apache2.conf文件。这将消除不少错误。新文件内置了新的“Require”语法

    • 在apache2.conf文件中,“默认”目录路径为“var/www”。我的头发不一样,所以我把头发拔了出来,直到我注意到为止
  • 更改“sites available”(站点可用)目录中的所有VH文件,例如xyzite.com.conf(将“.conf”添加到文件中。与默认文件相同。您必须更改此文件中的“Require”(需要)语法,正如Henk指出的那样

  • httpd.conf只是不被使用,所以如果你有一个,你最好删除它以避免将来的混淆


    希望这能有所帮助。

    我知道这个问题是在2014年提出的,但这个解决方案太好了,不能不在这里发表

    在旧的2.2 Apache上,我使用以下工具准备迁移:

    <Location />
      <IfVersion >= 2.4>
        Require all granted
      </IfVersion>
      <IfVersion < 2.4>
        order allow,deny
        allow from all
      </IfVersion>
    </Location>
    
    
    = 2.4>
    要求所有授权
    命令允许,拒绝
    通融
    
    根据Apache版本,将使用正确的配置语法。无论您运行的是2.2还是2.4,这都无关紧要。

    您的评论“httpd.conf根本没有被使用”是高度依赖于系统的。我刚刚在FreeBSD 8.x上使用了大量默认设置构建了Apache httpd 2.4,它肯定使用了httpd.conf;事实上,没有找到“apache2.conf”。