85 FreeBSD连载:配置Apache服务器(2)( 二 )


DocumentRoot "/usr/local/www/data"
DocumentRoot定义这个服务器对外发布的超文本文档存放的路径,客户程序请求的URL就被映射为这个目录下的网页文件 。这个目录下的子目录,以及使用符号连接指出的文件和目录都能被浏览器访问,只是要在URL上使用同样的相对目录名 。
注意,符号连接虽然逻辑上位于根文档目录之下,但实际上可以位于计算机上的任意目录中,因此可以使客户程序能访问那些根文档目录之外的目录,这在增加了灵活性的同时但减少了安全性 。Apache在目录的访问控制中提供了FollowSymLinks选项来打开或关闭支持符号连接的特性 。
Options FollowSymLinksAllowOverride NoneApache服务器可以针对目录进行文档的访问控制,然而访问控制可以通过两种方式来实现,一个是在设置文件httpd.conf(或access.conf)中针对每个目录进行设置,另一个方法是在每个目录下设置访问控制文件,通常访问控制文件名字为.htaccess 。虽然使用这两个方式都能用于控制浏览器的访问,然而使用配置文件的方法要求每次改动后重新启动httpd守护进程,比较不灵活,因此主要用于配置服务器系统的整体安全控制策略,而使用每个目录下的.htaccess文件设置具体目录的访问控制更为灵活方便 。
Directory语句就是用来定义目录的访问限制的,这里可以看出它的标准语法,为一个目录定义访问限制 。上例的这个设置是针对系统的根目录进行的,设置了允许符号连接的选项FollowSymLinks,以及使用AllowOverride None表示不允许这个目录下的访问控制文件来改变这里进行的配置,这也意味着不用查看这个目录下的相应访问控制文件 。
由于Apache对一个目录的访问控制设置是能够被下一级目录继承的,因此对根目录的设置将影响到它的下级目录 。注意由于AllowOverride None的设置,使得Apache服务器不需要查看根目录下的访问控制文件,也不需要查看以下各级目录下的访问控制文件,直至httpd.conf(或access.conf)中为某个目录指定了允许Alloworride,即允许查看访问控制文件 。由于Apache对目录访问控制是采用的继承方式,如果从根目录就允许查看访问控制文件,那么Apache就必须一级一级的查看访问控制文件,对系统性能会造成影响 。而缺省关闭了根目录的这个特性,就使得Apache从httpd.conf中具体指定的目录向下搜寻,减少了搜寻的级数,增加了系统性能 。因此对于系统根目录设置AllowOverride None不但对于系统安全有帮助,也有益于系统性能 。
Options Indexes FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all这里定义的是系统对外发布文档的目录的访问设置,设置不同的AllowOverride选项,以定义配置文件中的目录设置和用户目录下的安全控制文件的关系,而Options选项用于定义该目录的特性 。
配置文件和每个目录下的访问控制文件都可以设置访问限制,设置文件是由管理员设置的,而每个目录下的访问控制文件是由目录的属主设置的,因此管理员可以规定目录的属主是否能覆盖系统在设置文件中的设置,这就需要使用AllowOverride参数进行设置,通常可以设置的值为:
AllowOverride的设置对每个目录访问控制文件作用的影响All缺省值,使访问控制文件可以覆盖系统配置None服务器忽略访问控制文件的设置Options允许访问控制文件中可以使用Options参数定义目录的选项FileInfo允许访问控制文件中可以使用AddType等参数设置AuthConfig允许访问控制文件使用AuthName,AuthType等针对每个用户的认证机制,这使目录属主能用口令和用户名来保护目录Limit允许对访问目录的客户机的IP地址和名字进行限制每个目录具备一定属性,可以使用Options来控制这个目录下的一些访问特性设置,以下为常用的特性选项:

推荐阅读