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

时间:2012-04-07 16:01:23

标签: apache configuration

我遇到了问题,我不小心从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配置来完成同样的事情。我试过谷歌搜索一个答案,搜索这个网站,但没有找到任何东西(也许使用错误的条款 - 我不知道)。如果那里的一些古茹可以提供一些非常感谢的帮助。

谢谢!

4 个答案:

答案 0 :(得分:6)

Apache 2.4中的习语发生了变化 阅读http://httpd.apache.org/docs/trunk/upgrading.html

的“从2.2升级到2.4”

查找以下条目:

2.2 configuration:   
Order deny,allow   
Deny from all

2.4 configuration:   
Require all denied

答案 1 :(得分:4)

在您的情况下,不再需要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>

答案 2 :(得分:0)

以下是我在升级后让Apache备份并运行的方法:

  1. 使用&#39; etc / apache2&#39;中新安装的apache2.conf文件。目录。这将清除相当多的错误。新文件包含新的&#39;要求&#39;语法内置。

    • 在apache2.conf文件中,&#39;默认&#39;目录路径是&#39; var / www&#39;。我是不同的,所以我把头发拉出来直到我注意到它。
  2. 更改&#39; sites-available&#39;中的所有VH文件目录例如xyzsite.com。 conf (在文件中添加&#39; .conf&#39;与默认文件相同。您必须更改&#39;要求&#39; Henk指出这个文件中的语法。

  3. httpd.conf根本就没用过,所以如果你有一个,你也可以删除它以避免将来混淆。

    希望这有帮助。

答案 3 :(得分:0)

我知道这个问题是在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都没关系。