我有一系列服务器,正在从 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