【问题标题】:Upgrading httpd.conf from version 2.2 to 2.4将 httpd.conf 从版本 2.2 升级到 2.4
【发布时间】:2012-04-20 19:23:29
【问题描述】:

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

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

Order、Deny 和 Satisfy 的组合让我感到困惑,因为我是这方面的新手。完成同样事情的正确 2.4 配置是什么。我试过用谷歌搜索答案并搜索了这个网站,但没有找到任何东西(可能使用了错误的术语——我不知道)。如果那里的一些大师可以提供一些帮助,将不胜感激。

谢谢!

【问题讨论】:

    标签: apache configuration


    【解决方案1】:

    Apache 2.4 中的习语发生了变化。
    阅读“从 2.2 升级到 2.4”http://httpd.apache.org/docs/trunk/upgrading.html

    查找这些条目:

    2.2 configuration:   
    Order deny,allow   
    Deny from all
    
    2.4 configuration:   
    Require all denied
    

    【讨论】:

      【解决方案2】:

      在您的情况下,不再需要 Satisfy All

      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>
      

      v2.4:

      # The following lines prevent .htaccess and .htpasswd files from being 
      # viewed by Web clients. 
      <FilesMatch "^\.ht">
          Require all denied
      </FilesMatch>
      

      【讨论】:

        【解决方案3】:

        这是我在升级后让 Apache 恢复并运行的操作:

        1. 使用 'etc/apache2' 目录中新安装的 apache2.conf 文件。这将清除相当多的错误。新文件内置了新的“Require”语法。

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

        httpd.conf 根本没有使用,所以如果你有一个,你最好删除它以避免将来混淆。

        希望这会有所帮助。

        【讨论】:

        • 您的评论“The httpd.conf is just not used”高度依赖于系统。我刚刚在 FreeBSD 8.x 上使用大部分默认设置构建了 Apache httpd 2.4,而且它肯定使用 httpd.conf;事实上,没有“apache2.conf”可以找到。
        【解决方案4】:

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

        在旧的 2.2 Apache 上,我准备迁移:

        <Location />
          <IfVersion >= 2.4>
            Require all granted
          </IfVersion>
          <IfVersion < 2.4>
            order allow,deny
            allow from all
          </IfVersion>
        </Location>
        

        根据 Apache 版本,将使用正确的配置语法。运行 2.2 还是 2.4 也没关系。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-02-06
          • 2015-08-31
          • 2014-06-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多