选项 +/- 与 All 交互,这是 2.2 中的默认设置,但不是 2.4 中的默认设置

选项 +/- 与 All 交互,这是 2.2 中的默认设置,但不是 2.4 中的默认设置

我有一系列服务器,正在从 2.0/2.2 升级到 2.4。以前的管理员把各种选项弄得一团糟。我很困惑,因为 2.0/2.2 文档说选项全部(即“除 MultiViews 之外的所有选项”)是默认选项,而在 2.4 中,默认选项已更改为 FollowSymLinks。我还搞不清楚父目录选项与子目录选项之间的关系——哪些会被继承?这是我的问题孩子……

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
<Directory "/opt/apache/netegrity/webagent/pw/">
    Options -Indexes MultiViews ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

好的,这是 2.2,文档中肯定会责备您在同一行中混合使用 +/- 和非 +/- 选项,但确实启动了您的服务器。那么,此代码中为 /opt/apache/netegrity/webagent/pw/ 设置的选项是什么?pw 目录是否继承了 FollowSymLinks 并设置了 MultiViews 和 ExecCGI,并且 -Indexes 是无意义的,因为 Indexes 无论如何都没有打开?如果第二个 Options 指令仅

    Options MultiViews ExecCGI

是否要为 /opt/apache/netegrity/webagent/pw/ 打开索引?FollowSymLinks 呢?我知道这是怎么演变的——第二个 Options 指令最初由 webagent 安装程序创建,并且

    Options Indexes MultiViews ExecCGI

但后来管理员想要删除索引,所以他们在索引前面加了一个减号。我认为(如果我没有看错文档的话)关闭索引的方法是直接去掉它,而不是加减号。

因此,我们来谈谈金钱问题,即如何将其从 2.2 移植到 2.4 语法。由于选项默认值现在是 FollowSymLinks 而不是 All,我们可以将其省略

<Directory />
    AllowOverride none
    Require all denied
</Directory>

对吧?CA 人员建议对 /opt/apache/CA/webagent/pw/ 进行此设置。

<Directory "/opt/apache/CA/webagent/pw/">
    Options Indexes MultiViews ExecCGI
    AllowOverride None
    Require all granted
</Directory>

因此,如果我们想删除索引,我们是否应该将其完全删除,而不使用减号选项?

<Directory "/opt/apache/CA/webagent/pw/">
    Options MultiViews ExecCGI
    AllowOverride None
    Require all granted
</Directory>

最后一个问题是,由于为 进行了设置,所以是否隐式地为 /opt/apache/CA/webagent/pw/ 设置了 FollowSymLinks ?还是只有当它出现在 /opt/apache/CA/webagent/pw/ 的 Options 行中时才设置?

答案1

存在一个configtest参数来apache2ctl检查您的配置。

当我不确定的时候我喜欢用这个:

# apache2ctl configtest
Syntax OK

相关内容