




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux下 httpd.conf 配置详解1 / 441. 关于本文本文将以Apache 2.2为例,以rhel5为平台,讲述Apache服务器的安装和设置。 2. 关于Apache Apache 是一款功能强大、稳定、可支撑关键任务的Web服务器 Apache具有如下特性: 1) 几乎可以运行在所有的计算机平台上. 2) 支持最新的HTTP/1.1协议 3) 简单而且强有力的基于文件的配置(HTTPD.CONF). 4) 支持通用网关接口(CGI) 5) 支持虚拟主机. 6) 支持HTTP认证. 7) 集成PERL. 8) 集成的代理服务器 9) 可以通过WEB浏览器监视服务器的状态, 可
2、以自定义日志. 10) 支持服务器端包含命令(SSI). 11) 支持安全SOCKET层(SSL). 12) 具有用户会话过程的跟踪能力. 13) 支持FASTCGI 14) 支持JAVA SERVLETS. 更多信息请参阅Apache网站:3. Apache的安装 Apache的安装无外两种方式:源码包安装和二进制包安装。这两种方式各有特色,二位制包安装不需编译,针对不同的平台有经过优化编译的不同的二进制文件以及包格式,安装简单方便,源码包则必须先配置编译再安装,可以根据你所用的主机环境进行优化、选择你所用的模块,安装定制更灵活。下面分别介绍这两种
3、安装方式。3.1 以源码包方式安装 3.1.1 下载最新版本的apache软件 访问apahce网站/download.cgi下载最新版本的Apache源码包。本文使用的是2.2.6版本,在linux系统下用下面的命令下载: wget 3.1.2 解压缩下载的源码包 首先建立一个工作目录( 笔者建议的目录为/usr/local/src/apache ) : mkdir -p /usr/local/src/apache 将下载的源码包移至工作目录: mv httpd-2.2.6.tar.gz /usr/local/src/apache 进入工作目录并用
4、tar命令解压源码包: cd /usr/local/src/apache tar zxvf httpd-2.2.6.tar.gz 命令执行结束后,当前工作目录下将生成一个新的子目录httpd-2.2.6,此目录下即为Apache的源码文件。 3.1.3 配置Makefile文件 进入Apache源码目录 cd httpd-2.2.6 执行下面的命令可查看可配置选项和可用模块:./configure -help 配置命令常用格式如下:CC=gcc CFLAGS=-O3 CXX=gcc CXXFLAGS=-O3 -felide-constructors -fno-exceptions -fno-r
5、tti ./configure -prefix= -enable-=ARG -disable- -enable-modules= -enable-so -enable-mods-shared= -with-mpm=其中: CC:C编译器的名称(用于运行configure),本文示例为gcc CFLAGS:C编译器的标志(用于运行configure),本文示例为-O3,指定优化级别为3 CXX:C+编译器的名称(用于运行configure),本文示例为gcc CXXFLAGS:C+编译器的标志(用于运行configure)-prefix= 指明编译后的二进制文件安装到目录,用实际安装路径替换,如
6、 -prefix=/usr/local/apache-2.2.6 ,如果省略此配置参数,默认安装到/usr/local/apache2目录。为了提高性能、方便系统升级、备份和恢复,笔者建议不要将apache与操作系统安装在同一物理磁盘或分区上,并且安装路径中要包括程序版本号。-enable-=ARG 明确指明静态编译某一属性或模块到httpd二进制文件,如果=ARG不明确指出,默认为=yes;如果指定=ARG为=no,则效果等同于下面的-disable-;如果指定=ARG 为=share,则单独编译为动态加载模块(DSO),需要通过-enable-so选项打开DSO支持。用实际的属性或模块名来
7、替换,如-enable-rewrite,-enable-rewrite=no,-enable-rewrite=share-disable- 明确指明不静态编译某一属性或模块到httpd二进制文件,用实际的属性或模块名来替换,如-disable-status -enable-modules= 明确指明要静态编译到httpd二进制文件的模块,为空格分隔的模块名列表、all或者most,all表示包含所有模块,most表示包含大部分模块,如-enable-modules=rewrite deflate,-enable-modules=most,效果等同于多个-enable- -enable-so 指
8、明编译动态加载模块(DSO)支持到httpd二进制文件,此模块使得Apache的各功能模块可以与核心分开编译、运行时动态加载。有了DSO支持,升级和增加模块时只需编译相关的模块即可,不必重新编译整个系统。最新版本的Apache缺省编译此模块到httpd二进制文件,如果你在使用早期版本的 apache并且需要DSO支持,可能要明确指出此选项。-enable-mods-shared= 明确指明要以DSO方式编译的模块,为空格分隔的模块名列表、all或者most,all表示包含所有模块,most表示包含大部分模块,如-enable-mods-share=rewrite deflate,-enable
9、-mods-share=most,效果等同于多个-enable-=share-with-mpm= 先择Apache多路处理模块,=beos|event|worker|prefork|mpmt_os2,prefork为 Unix系统下默认处理模块,它将运行一个非线程型的、预派生的Web服务器,适合于没有线程安全库,需要避免线程兼容性问题的系统,它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。worker为支持混合的多线程多进程的多路处理模块,由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM,同时,它也使用了多进程,每个
10、进程又有多个线程,以获得基于进程的MPM的稳定性。如果你的系统是基于线程安全的,那么笔者建议使用worker替代prefork,它将使得你的系统得到实际的性能改善。 如果执行不带任何选项的configure命令,将采用prefork多路处理模块,以默认方式安装Apache2.2到/usr/local /apache2目录,并以静态方式编译以下模块: authn_file、authn_default、authz_host、authz_groupfile、authz_user、 authz_default、auth_basic、include、filter、log_config、env、seten
11、vif、mime、 status、autoindex、asis、cgi、negotiation、dir、actions、userdir、alias、so安装后可以在apache安装目录下执行下面的命令得知以静态方式编译的模块列表以及正在以哪种多路处理模块运行: ./bin/httpd -l 可根据服务器的具体用途选择不同的配置选项,笔者建议采用worker多路处理模块,以动态加载模块(DSO)的方式来编译大部分模块。配置命令如下所示:./configure -prefix=/usr/local/apache-2.2.6 -enable-so -enable-mods-shared=most -
12、with-mpm=worker如果你打算完全使用静态方式编译,那么笔者建议编译时增加以下模块:rewrite、deflate、expires、headers、cache、 file-cache、disk-cache、mem-cache,禁用以下模块autoindex、asis、cgi、actions、 include,各模块作用将在Apache配置一节详细介绍。配置命令如下所示:./configure -prefix=/usr/local/apache-2.2.6 -enable-rewrite -enable-deflate -enable-expires -enable-cache -en
13、able-file-cache -enable-disk-cache -enable-mem-cache -disable-autoindex -disable-asis -disable-cgi -disable-actions -disable-include -with-mpm=worker或者: ./configure -prefix=/usr/local/apache-2.2.6 -enable-modules=rewrite deflate expires cache file-cache disk-cache mem-cache -disable-autoindex -disab
14、le-asis -disable-cgi -disable-actions -disable-include -with-mpm=worker本文使用下面的配置命令,能满足大部分应用环境: CC=gcc CFLAGS=-O3 CXX=gcc CXXFLAGS=-O3 -felide-constructors -fno-exceptions -fno-rtti ./configure -prefix=/usr/local/apache-2.2.6 -enable-modules=rewrite deflate expires cache file-cache disk-cache mem-cac
15、he proxy proxy-connectproxy-ftp proxy-http proxy-ajp proxy-balancer -enable-so -enable-mods-shared=most -with-mpm=worker 3.1.4 编译源代码 执行下面的命令编译源代码: make 3.1.5 安装 执行下面的命令安装apache到目标路径: make install3.1.6 设置开机自启动服务控制脚本 Apache安装后可通过其安装路径的bin目录下的apachectl脚本控制服务的启动和停止。本例中apache安装在/usr/local/apache-2.2.6,服务
16、控制脚本为: /usr/local/apache-2.2.6/bin/apachectl执行下面的命令启动Apache服务: /usr/local/apache-2.2.6/bin/apachectl start执行下面的命令停止Apache服务: /usr/local/apache-2.2.6/bin/apachectl stop 可以简单地把Apache启动命令加到/etc/rc.local文件,让Apache随系统启动而自动启动: echo /usr/local/apache-2.2.6/bin/apachectl start /etc/rc.local下面介绍如何把Apache加入到系
17、统服务,用service命令来控制Apache的启动和停止。 首先以apachectl脚本为模板生成Apache服务控制脚本: grep -v # /usr/local/apache-2.2.6/bin/apachectl /etc/init.d/apache 用vi编辑Apache服务控制脚本/etc/init.d/apache: vi /etc/init.d/apache在文件最前面插入下面的行,使其支持chkconfig命令: #!/bin/sh# chkconfig: 2345 85 15# description: Apache is a World Wide Web server.
18、保存后退出vi编辑器,执行下面的命令增加Apache服务控制脚本执行权限: chmod +x /etc/init.d/apache 执行下面的命令将Apache服务加入到系统服务: chkconfig -add apache执行下面的命令检查Apache服务是否已经生效: chkconfig -list apache命令输出类似下面的结果:apache 0:off 1:off 2:on 3:on 4:on 5:on 6:off表明apache服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制Apache的启动和停止。 启动Apache服务: serv
19、ice apache start停止Apache服务:service apache stop 执行下面的命令关闭开机自启动: chkconfig apache off执行下面的命令改变开机自启动的运行级别为3、5: chkconfig -level 35 apache on 3.2 二进制包方式安装3.2.1 从安装媒体安装 Apache二进制包已经包含在CentOS 5的安装媒体中,可以直接从安装媒体中安装下面三个rpm包: httpd-2.2.3-6.el5.centos.1.i386.rpm httpd-devel-2.2.3-6.el5.centos.1.i386.rpm mod_ss
20、l-2.2.3-6.el5.centos.1.i386.rpm 不同的版本文件名可能有所不同,请注意区分。 执行下面的命令安装: rpm -iUvh httpd-2.2.3-6.el5.centos.1.i386.rpm rpm -iUvh httpd-devel-2.2.3-6.el5.centos.1.i386.rpm rpm -iUvh mod_ssl-2.2.3-6.el5.centos.1.i386.rpm 3.2.2 通过yum安装 如果你安装的机器此时可以连接到互联网,笔者建议使用yum命令来简化安装过程: yum install httpd httpd-devel mod_ss
21、l yum将自动从centos的镜像站点查找你指明的软件的最新二进制包,并检查软件包依赖关系,安装软件的同时自动安装其依赖的软件包。3.2.3 选择多路处理模块(MPM) 二进制方式安装时,unix系统下默认使用prefork多路处理模块,如果想使用worker多路处理模块,需要在/etc/sysconfig/httpd文件中增加下面的行: HTTPD=/usr/sbin/httpd.worker 可以执行下面的命令来完成: echo HTTPD=/usr/sbin/httpd.worker /etc/sysconfig/httpd3.2.4 设置开机自启动服务控制脚本 二进制方式安装不需要手
22、动建立开机自启动服务控制脚本,安装过程将在/etc/init.d目录下自动建立名为httpd的服务控制脚本,并将其添加到系统服务,可以使用service命令控制Apache的启动与停止。启动Apache服务:service httpd start 停止Apache服务: service httpd stop 执行下面的命令关闭开机自启动: chkconfig httpd off执行下面的命令改变开机自启动的运行级别为3、5: chkconfig -level 35 httpd on 至此,Apache安装过程结束,接下来进入Apache配置过程。 4. Apache的配置 4.1 目录结构4.
23、1.1 源码包方式安装目录结构 源码包方式安装时通常是在3.1.3节中configure命令的-prefix选项指定的目录中建立如下的目录结构,特殊指定的目录除外: ./icons #Apache图标文件目录 ./modules #动态加载模块目录 ./lib #库文件目录 ./logs #日志文件目录 ./build # ./conf #主配置文件目录 ./conf/extra #扩展及模块配置文件目录 ./error #默认错误应答文件目录 ./manual #Apache文档目录 ./include #包含头文件目录 ./htdocs #默认WEB文档根目录 ./cgi-bin #默认c
24、gi文件目录 ./bin #Apache二进制程序及服务程序目录 ./man #man帮助文件目录4.1.2 二进制包方式安装目录结构 二进制包方式安装时使用系统软件默认目录结构 : /etc/httpd/conf #主配置文件目录 /etc/httpd/conf.d #扩展及模块配置文件目录 /etc/httpd/logs链接到/var/log/httpd #日志文件目录 /etc/httpd/modules链接到/usr/lib/httpd/modules #动态加载模块目录 /etc/httpd/run链接到/var/run #PID及锁文件目录 /etc/logrotate.d/htt
25、pd #日专轮循设置文件 /etc/rc.d/init.d/httpd #服务控制脚本 /etc/sysconfig/httpd #服务控制脚本附加参数设置文件 /usr/bin #Apache二进制软件目录 /usr/sbin/ #Apache服务程序目录 /usr/share/doc/httpd-* #Apache文档目录 /usr/share/man/ #Apache Man文档目录 /var/www/cgi-bin #默认CGI文件目录 /var/www/error #默认错误应答文件目录 /var/www/html #默认WEB文档根目录 /var/www/icons #Apache
26、图标文件目录 4.2 配置文件 Apache的配置文件是包含若干指令的纯文本文件。4.2.1 主配置文件 主配置文件通常叫httpd.conf ,其位置是编译时确定的,通常位于4.1目录结构小节中所示的主配置文件目录,但可以用命令行参数 -f 来改变。另外,还可以用Include指令和通配符附加许多其他配置文件。任何配置文件都可以使用任何指令。只有在启动或重新启动Apache后,主配置文件的更改才会生效。4.2.2 配置文件的语法 配置文件的每一行包含一个指令,在行尾使用反斜杠可以表示续行,但是反斜杠与下一行之间不能有任何其他字符(包括空白字符)。 配置文件中的指令是不区分大小写的,但是指令的
27、参数(argument)通常是大小写敏感的。以#开头的行被视为注解并被忽略。注解不能出现在指令的后边。空白行和指令前的空白字符将被忽略,因此可以采用缩进以保持配置层次的清晰。 4.2.3 模块 Apache是模块化的服务器,这意味着核心中只包含实现最基本功能的模块。扩展功能可以作为模块动态加载。默认情况下,只有base组的模块被编译进了服务器。如果服务器在编译时包含了DSO模块,那么各模块可以独立编译,并可随时用LoadModule指令加载;否则,要增加或删除模块必须重新编译整个Apache。用于特定模块的指令可以用指令包含起来,使之有条件地生效。 用命令行参数 -l 可以查看已经编译到服务器
28、中的模块,命令格式如下: /apachectl -l 其中: 为4.1目录结构小节中所示的服务程序目录。 下面是命令行的例子: /usr/local/apache-2.2.6/bin/apachectl -l /usr/sbin/apachectl -l4.2.4 指令的作用域 主配置文件中的指令对整个服务器都有效。 如果你只想改变某一部分的配置,你可以把指令嵌入到、 配置段中,这样就可以限制指令的作用域为文件系统中的某些位置或特定的URL。这些配置段还可以进行嵌套,以进行更精细的配置。 Apache还具备同时支持多个站点的能力,称为虚拟主机。配置段中的指令仅对该段中的特定站点(虚拟主机)有效
29、。 虽然大多数指令可以包含在任意的配置段中,但是某些指令仅在某些特定的范围内才有意义,请参阅Apache官方文档中指令说明的作用域项。4.2.5 .htaccess文件 Apache可以使用分布在整个网站文件目录树结构中的特殊文件来进行分散配置,这些特殊的文件通常叫.htaccess ,但是也可以用AccessFileName指令来改变它的名字。.htaccess文件中指令的作用域是存放它的那个目录及其所有子目录。.htaccess文件的语法与主配置文件相同。由于对每次请求都会读取.htaccess文件,所以对这些文件的修改会立即生效。 要了解一个指令是否可以用在.htaccess文件中,可以
30、查阅Apache官方文档中指令说明中该指令的作用域项。服务器管理员可以在主配置文件中使用AllowOverride指令来决定哪些指令可以在.htaccess文件中生效。 有关.htaccess文件更详细的资料,可以查看.htaccess指南。4.2.6 源码包方式安装与二进制包方式安装配置文件的区别 源码包方式安装最新版本的Apache时,主配置文件中只包含少量与服务自身相关的指令,通过include指令和通配符附加其他配置文件,默认不附加任何其它配置文件。附加的配置指令和模块的具体配置指令以单独的配置文件形式保存在4.1.1小节中所示的扩展及模块配置文件目录./conf/extra 中,可根
31、据需要在主配置文件中附加。 二进制包安装Apache时,主配置文件中包含了大部分配置指令,默认通过include指令将/etc/httpd/conf.d目录中的以.conf为扩展名的文件自动附加到主配置文件。4.3 推荐配置 下面以源码包方式安装的Apache为例来说明笔者建议的配置,如果你正在使用二进制包方式安装的Apache,文中的所有配置指令都可以在/etc/httpd/conf/httpd.conf主配置文件中使用。 本文所使用的示例主机中Apache安装在/usr/local/apache-2.2.6目录,请使用你实际的安装目录替换。 Apache配置文件可使用你熟悉的任何文本编辑器
32、编辑,笔者使用vi 。4.3.1常用配置指令说明 下面介绍本文中将会用到的一些常用配置指令,全部指令及其详细用法请参见Apache2.2官方文档。另外需要注意,当在非UNIX平台上输入文件路径的时候,要特别注意即使平台本身是使用反斜杠()来分隔路径的,在这里也只能使用正斜杠(/)。通常在配置文件里只用正斜杠(/)来分隔路径总是不会错的。 ServerRoot:服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它配置文件的相对路径即基于此目录。默认为安装目录,不需更改。 语法: ServerRoot directory-path 如: ServerRoot /usr/local/
33、apache-2.2.6 注意,此指令中的路径最后不要加 / 。 Listen:指定服务器监听的IP和端口。默认情况下Apache会在所有IP地址上监听。Listen是Apache2.0以后版本必须设置的指令,如果在配置文件中找不到这个指令,服务器将无法启动。 语法:Listen IP-address:portnumber protocol Listen指令指定服务器在那个端口或地址和端口的组合上监听接入请求。如果只指定一个端口,服务器将在所有地址上监听该端口。如果指定了地址和端口的组合,服务器将在指定地址的指定端口上监听。可选的protocol参数在大多数情况下并不需要,若未指定该参数,则将
34、为443端口使用默认的https 协议,为其它端口使用http协议。 使用多个Listen指令可以指定多个不同的监听端口和/或地址端口组合。 默认为:Listen 80 如果让服务器接受80和8080端口上请求,可以这样设置: Listen 80 Listen 8080 如果让服务器在两个确定的地址端口组合上接受请求,可以这样设置: Listen :80 Listen :8080 如果使用IPV6地址,必须用方括号把IPV6地址括起来: Listen 2001:db8:a00:20ff:fea7:ccea:80 LoadModule:加载特定的DSO
35、模块。Apache默认将已编译的DSO模块存放于4.1目录结构小节中所示的动态加载模块目录中。 语法:LoadModule module filename 如:LoadModule rewrite_module modules/mod_rewrite.so 如果filename使用相对路径,则路径是相对于ServerRoot所指示的相对路径。 Apache配置文件默认加载所有已编译的DSO模块,笔者建议只加载如下模块:authn_file、authn_default、 authz_host、authz_user、authz_default、auth_basic、dir、alias、filter
36、、speling、 log_config、env、vhost_alias、setenvif、mime、negotiation、rewrite、deflate、 expires、headers、cache、file-cache、disk-cache、mem-cache。 User:设置实际提供服务的子进程的用户。为了使用这个指令,服务器必须以root身份启动和初始化。如果你以非root身份启动服务器,子进程将不能够切换至非特权用户,并继续以启动服务器的原始用户身份运行。如果确实以root用户启动了服务器,那么父进程将仍然以root身份运行。 语法: User Unix-userid Unix-u
37、serid是下列值之一: 一个用户名,通过用户名引用用户 #号后面跟一个用户编号(UID),通过用户编号引用用户 用于运行子进程的用户必须是一个没有特权的用户,这样才能保证子进程无权访问那些不想为外界所知的文件,同样的,该用户亦需没有执行那些不应当被外界执行的程序的权限。强烈建议专门为Apache子进程建立一个单独的用户和组。一些管理员使用nobody用户,但是这并不能总是符合要求,因为可能有其他程序也在使用这个用户。 例:User daemon Group:设置提供服务的Apache子进程运行时的用户组。为了使用这个指令,Apache必须以root初始化启动,否则在切换用户组时会失败,并继续
38、以初始化启动时的用户组运行。 语法:Group Unix-Group Unix-group可以是下列之一: 用户组的名称,通过名称引用组 #号后跟一个组编号(GID) ,通过编号引用组。 例:Group daemon ServerAdmin:设置在所有返回给客户端的错误信息中包含的管理员邮件地址。 语法:ServerAdmin email-address|URL 如果httpd不能将提供的参数识别为URL,它就会假定它是一个email-address ,并在超连接中用在mailto:后面。推荐使用一个Email地址,因为许多CGI脚本是这样认为的。如果你确实想使用URL,一定要保证指向一个你能
39、够控制的服务器,否则用户将无法确保一定可以和你取得联系。 例:ServerAdminwebmaster ServerName:设置服务器用于辨识自己的主机名和端口号。 语法:ServerName scheme:/fully-qualified-domain-name:port 可选的scheme:/前缀仅在2.2.3以后的版本中可用,用于在代理之后或离线设备上也能正确的检测规范化的服务器URL。 当没有指定ServerName时,服务器会尝试对IP地址进行反向查询来推断主机名。如果在ServerName中没有指定端口号,服务器会使用接受请求的那个端口。 为了加强可靠性和可预测性,建议使用Ser
40、verName显式的指定一个主机名和端口号。 如果使用的是基于域名的虚拟主机,在段中的ServerName将是为了匹配这个虚拟主机,在Host:请求头中必须出现的主机名。 DocumentRoot:设置Web文档根目录。 语法:DocumentRoot directory-path 在没有使用类似Alias这样的指令的情况下,服务器会将请求中的URL附加到DocumentRoot后面以构成指向文档的路径。 如果directory-path不是绝对路径,则被假定为是相对于ServerRoot的路径。 指定DocumentRoot时不应包括最后的/。 :和用于封装一组指令,使之仅对某个目录及其子目
41、录生效。 语法: . Directory-path可以是一个目录的完整路径,或是包含了Unix shell匹配语法的通配符字符串。在通配符字符串中,?匹配任何单个的字符,*匹配任何字符序列。也可以使用来确定字符范围。在 字符之后也可以使用正则表达式。 如果有多个(非正则表达式)配置段符合包含某文档的目录(或其父目录),那么指令将以短目录优先的规则进行应用,并包含.htaccess文件中的指令。 正则表达式将在所有普通配置段之后予以考虑。所有的正则表达式将根据它们出现在配置文件中的顺序进行应用。 指令不可被嵌套使用,也不能出现在或配置段中。 :提供基于文件名的访问控制,类似于和指令。 语法: .
42、 filename参数应当是一个文件名或是一个包含通配符的字符串,其中?匹配任何单个字符,*匹配任何字符串序列。在字符之后可以使用正则表达式。在此配置段中定义的指令将作用于其基本名称(不是完整的路径)与指定的文件名相符的对象。段将根据它们在配置文件中出现的顺序被处理:在段和.htaccess文件被处理之后,但在段之前。能嵌入到段中以限制它们作用的文件系统范围,也可用于.htaccess文件当中,以允许用户在文件层面上控制对它们自己文件的访问。:提供基于文件名的访问控制。与指令不同在于只能用正则表达式进行文件匹配。语法: . :封装根据指定的模块是否启用而决定是否生效的指令。语法: . modu
43、le-file是指编译模块时的文件名,比如mod_rewrite.c。module-identifier是指模块的标识符,比如mod_rewrite。在配置段中的指令仅当测试结果为真的时候才进行处理,否则所有其间的指令都将被忽略。Options:控制在特定目录中将使用哪些服务器特性。语法:Options +|-option +|-option .option可以为None,不启用任何额外特性,或者下面选项中的一个或多个:All 除MultiViews之外的所有特性,这是默认设置。ExecCGI 允许使用mod_cgi执行CGI脚本。FollowSymLinks 服务器允许在此目录中使用符号连接
44、,如果此配置位于配置段中,则会被忽略。Includes 允许使用mod_include提供的服务器端包含。IncludesNOEXEC 允许服务器端包含,但禁用#exec cmd和#exec cgi,但仍可以从ScriptAlias目录使用#include virtual虚拟CGI脚本。Indexes 如果一个映射到目录的URL被请求,而此目录中又没有DirectoryIndex(例如:index.html),那么服务器会返回由mod_autoindex生成的一个格式化后的目录列表。MultiViews 允许使用mod_negotiation提供内容协商的多重视图(MultiViews)。Sy
45、mLinksIfOwnerMatch 服务器仅在符号连接与其目的目录或文件的拥有者具有相同的uid时才使用它。 如果此配置出现在配置段中,则将被忽略。一般来说,如果一个目录被多次设置了Options ,则最特殊的一个会被完全接受(其它的被忽略),而各个可选项的设定彼此并不融合。然而,如果所有作用于Options指令的可选项前都加有+ 或-符号,此可选项将被合并。所有前面加有+号的可选项将强制覆盖当前的可选项设置,而所有前面有-号的可选项将强制从当前可选项设置中去除。AllowOverride:确定允许存在于.htaccess文件中的指令类型。语法:AllowOverride All|None|
46、directive-type directive-type .如果此指令被设置为None ,那么.htaccess文件将被完全忽略。事实上,服务器根本不会读取.htaccess文件。当此指令设置为All时,所有具有.htaccess作用域的指令都允许出现在.htaccess文件中。directive-type可以是下列各组指令之一:AuthConfig 允许使用与认证授权相关的指令FileInfo 允许使用控制文档类型的指令、控制文档元数据的指令、mod_rewrite中的指令、mod_actions中的Action指令Indexes 允许使用控制目录索引的指令Limit 允许使用控制主机访问
47、的指令Options=Option,. 允许使用控制指定目录功能的指令(Options和XBitHack)。可以在等号后面附加一个逗号分隔的(无空格的)Options选项列表,用来控制允许Options指令使用哪些选项。AllowOverride仅在不包含正则表达式的配置段中才是有效的。在, , 配置段中都是无效的。Order:控制默认的访问状态与Allow和Deny指令生效的顺序。语法:Order OrderingOrdering取值范围是以下几种范例之一: Deny,Allow Deny指令在Allow指令之前被评估。默认允许所有访问。任何不匹配Deny指令或者匹配Allow指令的客户都被
48、允许访问。Allow,Deny Allow指令在Deny指令之前被评估。默认拒绝所有访问。任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问。Mutual-failure 只有出现在Allow列表并且不出现在Deny列表中的主机才被允许访问。这种顺序与Order Allow,Deny具有同样效果,不赞成使用。关键字只能用逗号分隔,它们之间不能有空格,在所有情况下每个Allow和Deny指令语句都将被评估。Allow:控制哪些主机可以访问服务器的该区域。可以根据主机名、IP地址、 IP地址范围或其他环境变量中捕获的客户端请求特性进行控制。语法:Allow from all|host|env=env-variable host|env=env-variable .这个指令的第一个参数总是from,随后的参数可以有三种不同形式:如果指定Allow from all,则允许所有主机访问,按照下述Deny和Order指令的配置;若要只允许特定的主机或主机群访问服务器,host可以用下面任何一种格式来指定:一个(部分)域名、完整的IP地址、部分IP地址、网络/掩码、网络/nnn无类别域间路由规格;第三种参数格式允许对服务器的访问由环
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 迈出成功第一步的计算机基础考试试题及答案
- 汽车美容师全球市场动态试题及答案
- 2024小学语文试题及答案大集合
- 第2讲 磁场对运动电荷的作用-2026版大一轮高考物理复习
- 语文书写技巧掌握六年级题试题及答案
- 归纳2024古代文学史的试题及答案
- 皮肤测试的科学依据试题及答案
- 提升汽车美容师能力的考试重点与试题答案
- 2024汽车美容师应急处理能力试题及答案
- 计算机基础考试试题及答案分析
- 2025年新疆九年级中考语文一模试卷附答案解析
- 物管物业交接验收明细表格(全)模板
- 口腔科诊断证明书模板
- 蓄水池工程工程安全管理措施和方案
- 机壳类2D图纸标注参考规范
- 起重吊装及指挥安全风险告知书
- 《远离浮躁,静心学习》ppt课件
- 二维数控精密工作台设计说明书
- 项目研究助力区域教学改进
- 初中化学优质课评分表.
- LKJ-2000课件
评论
0/150
提交评论