<< Back to man.ChinaUnix.net

Apache 2.0手册中文版翻译项目 [本文译者: kajaa * ]

项目说明 | 项目进度 | 项目讨论区 | Apache手册中文版

 


配置文件 - Apache HTTP服务器 << Back to man.ChinaUnix.net

<-
Apache主站 > HTTP服务器 > 文档 > 2.0版本

配置文件

本页阐述Apache的配置文件。

top

主配置文件

Apache的配置文件是包含了若干指令的纯文本文件。主配置文件通常叫httpd.conf,其位置是编译时确定的,但可以用命令行参数-f改变。可以用Include指令附加其他配置文件。 任何配置文件都可以使用任何指令。改变了主配置文件,只有在启动或重新启动后才会生效。

Apache 1.3.13 起有个新功能,即,如果配置文件是一个目录,Apache会解析该目录及其子目录中的所有文件作为配置文件。一种可能的用途是,可以通过在这个目录中建立小的配置文件来设置虚拟主机,这样就可以简单地增加和删除虚拟主机,而不用修改其他任何文件,使类似操作的自动化容易了许多。

服务器还会读取一个包含MIME文件类型的文件,其文件名由TypesConfig指定,缺省时是mime.types

top

配置文件的语法

Apache配置文件每行包含一个指令,行末使用反斜杠"\"可以换行,但是反斜杠与下一行中间不能有任何其他字符包括空白。

配置文件中的指令是不区分大小写的,但是指令的参数通常是大小写敏感的。以"#"开头的行被视为注解并被忽略。注解可能不能出现在指令的后边。指令前边的空行和空白字符将被忽略,因此可以采用缩进保持层次清晰。

可以用apachectl configtest或者命令行参数-t检查配置文件中的错误,而无须启动Apache服务器。

top

模块

Apache是模块化的服务器。这意味着核心中只包含实现最常用功能的模块,扩展功能可以作为模块动态加载,缺省情况下,只有base组的模块被编译进了服务器。如果服务器编译时包含了DSO模块,那么各模块可以独立编译,并随时用LoadModule指令加载;否则,要增加删除模块必须重新编译整个Apache。特定模块的指令可以用<IfModule>指令包含起来,使之有条件地生效。

用命令行参数-l可以查看已经编译到服务器中的模块。

top

指令的作用域

主配置文件中的指令对整个服务器有效。把指令嵌入到诸如<Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, 以及 <LocationMatch>等的段中,可以限制指令的作用域为文件系统中的某个位置或者URL,还可以嵌套。

Apache具备同时支持许多不同站点的能力,称为 Virtual Hosting<VirtualHost>也会限制其中的指令的作用域,使之仅对特定站点有效。

大多数指令可以包含在任意的段中,但是有些指令的作用域没有意义,比如控制进程建立的指令只对主服务器有效。查询作用域可以看Context,需要更详细资料可以看How Directory, Location and Files sections work.

top

.htaccess 文件

Apache可以使用分布在整个网页结构中的特殊文件来进行配置,这些特殊文件通常叫.htaccess,也可以用AccessFileName指令来改变。.htaccess 文件中的指令的作用域是存放它的那个目录及其所有子目录。.htaccess 文件的语法与主配置文件相同。由于对每次请求都会读取.htaccess 文件,所以对这些文件的改变会立即生效。

可以查阅Context了解可以放在.htaccess 文件中的指令;服务器管理员可以通过AllowOverride指令,来决定.htaccess 文件中可以生效的指令。

更详细的有关.htaccess 文件的资料,可以看 Ken Coar的Using .htaccess Files with Apache.

 


项目维护者: kajaa [本文译者: kajaa * ]

项目说明 | 项目进度 | 项目讨论区 | Apache手册中文版