# 配置文件
本页阐述了Apache服务器的配置文件。
## 主配置文件
相关模块
* `mod_mime`
相关指令
* `<IfDefine>`
* `Include`
* `TypesConfig`
Apache的配置文件是包含若干[指令](#calibre_link-2)的纯文本文件。主配置文件通常叫`httpd.conf` ,其位置是编译时确定的,但可以用命令行参数 `-f` 来改变。另外,还可以用`Include`指令和通配符附加许多其他配置文件。任何配置文件都可以使用任何指令。只有在启动或重新启动Apache后,主配置文件的更改才会生效。
服务器还会读取一个包含MIME文件类型的文件,其文件名由`TypesConfig`指令确定,默认值是`mime.types` 。
## 配置文件的语法
Apache配置文件的每一行包含一个指令,在行尾使用反斜杠"\"可以表示续行,但是反斜杠与下一行之间不能有任何其他字符(包括空白字符)。
配置文件中的指令是不区分大小写的,但是指令的参数(argument)通常是大小写敏感的。以"#"开头的行被视为注解并被忽略。注解**不能**出现在指令的后边。空白行和指令前的空白字符将被忽略,因此可以采用缩进以保持配置层次的清晰。
可以用 `apachectl configtest` 或者命令行选项 `-t` 检查配置文件中的错误,而无须启动Apache服务器。
## 模块
相关模块
* `mod_so`
相关指令
* `<IfModule>`
* `LoadModule`
Apache是模块化的服务器,这意味着核心中只包含实现最基本功能的模块。扩展功能可以作为[模块](#calibre_link-1)动态加载。默认情况下,只有[base](#calibre_link-12)组的模块被编译进了服务器。如果服务器在编译时包含了[DSO模块](#calibre_link-259),那么各模块可以独立编译,并可随时用`LoadModule`指令加载;否则,要增加或删除模块必须重新编译整个Apache。用于特定模块的指令可以用`<IfModule>`指令包含起来,使之有条件地生效。
用命令行参数 `-l` 可以查看已经编译到服务器中的模块。
## 指令的作用域
相关模块
* `<Directory>`
* `<DirectoryMatch>`
* `<Files>`
* `<FilesMatch>`
* `<Location>`
* `<LocationMatch>`
* `<VirtualHost>`
相关指令
主配置文件中的指令对整个服务器都有效。如果你只想改变某一部分的配置,你可以把指令嵌入到`<Directory>`、`<DirectoryMatch>`、`<Files>`、`<FilesMatch>`、`<Location>`、`<LocationMatch>`配置段中,这样就可以限制指令的作用域为文件系统中的某些位置或特定的URL。这些配置段还可以进行嵌套,以进行更精细的配置。
Apache还具备同时支持多个站点的能力,称为[虚拟主机](#calibre_link-36)。`<VirtualHost>`配置段中的指令仅对该段中的特定站点(虚拟主机)有效。
虽然大多数指令可以包含在任意的配置段中,但是某些指令仅在某些特定的范围内才有意义。比如,控制进程建立的指令仅在主服务器范围内有效。要查询一个指令可以被应用于哪些配置段中,可以查看该指令的[作用域](#calibre_link-20)项。更详细资料可以查看[配置段说明](#calibre_link-256)。
## .htaccess 文件
相关模块
* `AccessFileName`
* `AllowOverride`
相关指令
Apache可以使用分布在整个网站文件目录树结构中的特殊文件来进行分散配置,这些特殊的文件通常叫`.htaccess` ,但是也可以用`AccessFileName`指令来改变它的名字。`.htaccess`文件中指令的作用域是存放它的那个目录及其所有子目录。`.htaccess`文件的语法与主配置文件相同。由于对每次请求都会读取`.htaccess`文件,所以对这些文件的修改会立即生效。
要了解一个指令是否可以用在`.htaccess`文件中,可以查阅该指令的[作用域](#calibre_link-20)项。服务器管理员可以在主配置文件中使用`AllowOverride`指令来决定哪些指令可以在`.htaccess`文件中生效。
有关`.htaccess`文件更详细的资料,可以查看[.htaccess 指南](#calibre_link-222)。
- Apache HTTP Server Version 2.2 文档 [最后更新:2006年3月21日]
- 版本说明
- 从1.3升级到2.0
- 从2.0升级到2.2
- Apache 2.2 新特性概述
- Apache 2.0 新特性概述
- The Apache License, Version 2.0
- 参考手册
- 编译与安装
- 启动Apache
- 停止和重启
- 配置文件
- 配置段(容器)
- 缓冲指南
- 服务器全局配置
- 日志文件
- 从URL到文件系统的映射
- 安全方面的提示
- 动态共享对象(DSO)支持
- 内容协商
- 自定义错误响应
- 地址和端口的绑定(Binding)
- 多路处理模块
- Apache的环境变量
- Apache处理器的使用
- 过滤器(Filter)
- suEXEC支持
- 性能方面的提示
- URL重写指南
- Apache虚拟主机文档
- 基于主机名的虚拟主机
- 基于IP地址的虚拟主机
- 大批量虚拟主机的动态配置
- 虚拟主机示例
- 深入研究虚拟主机的匹配
- 文件描述符限制
- 关于DNS和Apache
- 常见问题
- 经常问到的问题
- Apache的SSL/TLS加密
- SSL/TLS高强度加密:绪论
- SSL/TLS高强度加密:兼容性
- SSL/TLS高强度加密:如何...?
- SSL/TLS Strong Encryption: FAQ
- 如何.../指南
- 认证、授权、访问控制
- CGI动态页面
- 服务器端包含入门
- .htaccess文件
- 用户网站目录
- 针对特定平台的说明
- 在Microsoft Windows中使用Apache
- 在Microsoft Windows上编译Apache
- Using Apache With Novell NetWare
- Running a High-Performance Web Server on HPUX
- The Apache EBCDIC Port
- 服务器和支持程序
- httpd - Apache超文本传输协议服务器
- ab - Apache HTTP服务器性能测试工具
- apachectl - Apache HTTP服务器控制接口
- apxs - Apache 扩展工具
- configure - 配置源代码树
- dbmmanage - 管理DBM格式的用户认证文件
- htcacheclean - 清理磁盘缓冲区
- htdbm - 操作DBM密码数据库
- htdigest - 管理用于摘要认证的用户文件
- httxt2dbm - 生成RewriteMap指令使用的dbm文件
- htpasswd - 管理用于基本认证的用户文件
- logresolve - 解析Apache日志中的IP地址为主机名
- rotatelogs - 滚动Apache日志的管道日志程序
- suexec - 在执行外部程序之前切换用户
- 其他程序
- 杂项文档
- 与Apache相关的标准
- Apache模块
- 描述模块的术语
- 描述指令的术语
- Apache核心(Core)特性
- Apache MPM 公共指令
- Apache MPM beos
- Apache MPM event
- Apache MPM netware
- Apache MPM os2
- Apache MPM prefork
- Apache MPM winnt
- Apache MPM worker
- Apache模块 mod_actions
- Apache模块 mod_alias
- Apache模块 mod_asis
- Apache模块 mod_auth_basic
- Apache模块 mod_auth_digest
- Apache模块 mod_authn_alias
- Apache模块 mod_authn_anon
- Apache模块 mod_authn_dbd
- Apache模块 mod_authn_dbm
- Apache模块 mod_authn_default
- Apache模块 mod_authn_file
- Apache模块 mod_authnz_ldap
- Apache模块 mod_authz_dbm
- Apache模块 mod_authz_default
- Apache模块 mod_authz_groupfile
- Apache模块 mod_authz_host
- Apache模块 mod_authz_owner
- Apache模块 mod_authz_user
- Apache模块 mod_autoindex
- Apache模块 mod_cache
- Apache模块 mod_cern_meta
- Apache模块 mod_cgi
- Apache模块 mod_cgid
- Apache模块 mod_charset_lite
- Apache模块 mod_dav
- Apache模块 mod_dav_fs
- Apache模块 mod_dav_lock
- Apache模块 mod_dbd
- Apache模块 mod_deflate
- Apache模块 mod_dir
- Apache模块 mod_disk_cache
- Apache模块 mod_dumpio
- Apache模块 mod_echo
- Apache模块 mod_env
- Apache模块 mod_example
- Apache模块 mod_expires
- Apache模块 mod_ext_filter
- Apache模块 mod_file_cache
- Apache模块 mod_filter
- Apache模块 mod_headers
- Apache模块 mod_ident
- Apache模块 mod_imagemap
- Apache模块 mod_include
- Apache模块 mod_info
- Apache模块 mod_isapi
- Apache模块 mod_ldap
- Apache模块 mod_log_config
- Apache模块 mod_log_forensic
- Apache模块 mod_logio
- Apache模块 mod_mem_cache
- Apache模块 mod_mime
- Apache模块 mod_mime_magic
- Apache模块 mod_negotiation
- Apache模块 mod_nw_ssl
- Apache模块 mod_proxy
- Apache模块 mod_proxy_ajp
- Apache模块 mod_proxy_balancer
- Apache模块 mod_proxy_connect
- Apache模块 mod_proxy_ftp
- Apache模块 mod_proxy_http
- Apache模块 mod_rewrite
- Apache模块 mod_setenvif
- Apache模块 mod_so
- Apache模块 mod_speling
- Apache模块 mod_ssl
- Apache模块 mod_status
- Apache模块 mod_suexec
- Apache模块 mod_unique_id
- Apache模块 mod_userdir
- Apache模块 mod_usertrack
- Apache模块 mod_version
- Apache模块 mod_vhost_alias
- Developer Documentation for Apache 2.0
- Apache 1.3 API notes
- Debugging Memory Allocation in APR
- Documenting Apache 2.0
- Apache 2.0 Hook Functions
- Converting Modules from Apache 1.3 to Apache 2.0
- Request Processing in Apache 2.0
- How filters work in Apache 2.0
- Apache 2.0 Thread Safety Issues
- 词汇和索引
- 词汇表
- 指令索引
- 指令速查
- 模块索引
- 站点导航