<-
Apache > HTTP Server > 文件 > 版本 2.4

配置檔案

可用語言:  de  |  en  |  fr  |  ja  |  ko  |  tr 

本文档描述了用于配置 Apache HTTP Server 的文件。

Support Apache!

另請參閱

top

主配置檔案

Apache HTTP Server 通过在纯文本配置檔案中放置 指令 来配置。主配置檔案通常称为 httpd.conf。此檔案的位置在编译时设置,但可以使用 -f 命令行标志覆盖。此外,可以使用 Include 指令添加其他配置檔案,并且可以使用通配符来包含多个配置檔案。任何指令都可以放置在这些配置檔案中的任何一个。对主配置檔案的更改只有在 httpd 启动或重新启动时才会被识别。

服务器还会读取一个包含 mime 文档类型的檔案;檔案名由 TypesConfig 指令设置,默认情况下为 mime.types

top

配置檔案的語法

httpd 配置檔案每行包含一个指令。反斜杠 "\" 可以用作一行中的最后一个字符,表示指令延续到下一行。反斜杠和行尾之间不能有任何其他字符或空格。

指令的参数用空格分隔。如果参数包含空格,则必须将该参数用引号括起来。

配置檔案中的指令不区分大小写,但指令的参数通常区分大小写。以井号 "#" 开头的行被视为注释,将被忽略。注释 **不能** 包含在与配置指令相同的行上。指令前出现的空格将被忽略,因此您可以缩进指令以提高清晰度。空行也会被忽略。

使用 Define 或 shell 环境变量定义的变量的值可以在配置檔案行中使用语法 ${VAR}。如果 "VAR" 是有效变量的名称,则该变量的值将被替换到配置檔案行中的该位置,处理将继续进行,就好像该文本直接在配置檔案中找到一样。使用 Define 定义的变量优先于 shell 环境变量。如果未找到 "VAR" 变量,则字符 ${VAR} 将保持不变,并记录警告。变量名不能包含冒号 ":" 字符,以避免与 RewriteMap 的语法冲突。

只有在服务器启动之前定义的 shell 环境变量才能用于扩展。在配置檔案本身中定义的环境变量,例如使用 SetEnv 定义的环境变量,生效时间太晚,无法用于配置檔案中的扩展。

普通配置檔案中一行在变量替换和连接任何延续行后的最大长度约为 16 MiB。在 .htaccess 檔案 中,最大长度为 8190 个字符。

您可以使用 apachectl configtest-t 命令行选项检查配置檔案是否存在语法错误,而无需启动服务器。

您可以使用 mod_info-DDUMP_CONFIG 来转储配置,其中包含所有已解析的包含檔案和环境变量,以及所有注释和不匹配的 <IfDefine><IfModule> 部分。但是,输出不反映对重复指令的合并或覆盖。

top

模組

httpd 是一个模块化服务器。这意味着只有最基本的功能包含在核心服务器中。扩展功能可以通过可以加载到 httpd 中的 模組 获得。默认情况下,一组 基本 模組在编译时包含在服务器中。如果服务器编译为使用 动态加载 模組,则可以单独编译模組并在任何时候使用 LoadModule 指令添加它们。否则,必须重新编译 httpd 才能添加或删除模組。配置指令可以包含在特定模組存在的情况下,方法是将它们包含在 <IfModule> 块中。但是,<IfModule> 块不是必需的,在某些情况下可能会掩盖您缺少重要模組的事实。

要查看当前编译到服务器中的哪些模組,可以使用 -l 命令行选项。您还可以使用 -M 命令行选项查看哪些模組是动态加载的。

top

指令的范围

放置在主配置檔案中的指令适用于整个服务器。如果您希望仅更改服务器一部分的配置,则可以通过将指令放置在 <Directory><DirectoryMatch><Files><FilesMatch><Location><LocationMatch> 部分来限定指令的范围。这些部分将它们包含的指令的应用限制在特定的檔案系统位置或 URL。它们也可以嵌套,允许非常细粒度的配置。

httpd 能够同时服务于许多不同的网站。这称为 虚拟主机。指令也可以通过将它们放置在 <VirtualHost> 部分内来限定范围,以便它们只适用于特定网站的请求。

虽然大多数指令可以放置在这些部分中的任何一个,但某些指令在某些情况下没有意义。例如,控制进程创建的指令只能放置在主服务器上下文中。要查找哪些指令可以放置在哪些部分,请检查指令的 上下文。有关更多信息,我们提供了有关 目录、位置和檔案部分的工作原理 的详细信息。

top

.htaccess 檔案

httpd 允许通过放置在 Web 树中的特殊檔案来进行分散的配置管理。特殊檔案通常称为 .htaccess,但任何名称都可以在 AccessFileName 指令中指定。放置在 .htaccess 檔案中的指令适用于您放置檔案的目录及其所有子目录。.htaccess 檔案遵循与主配置檔案相同的语法。由于 .htaccess 檔案在每次请求时都会被读取,因此对这些檔案所做的更改会立即生效。

要查找哪些指令可以放置在 .htaccess 檔案中,请检查指令的 上下文。服务器管理员通过在主配置檔案中配置 AllowOverride 指令来进一步控制哪些指令可以放置在 .htaccess 檔案中。

有关 .htaccess 檔案的更多信息,请参阅 .htaccess 教程

可用語言:  de  |  en  |  fr  |  ja  |  ko  |  tr 

top

意見回饋

注意
这不是问答部分。此处放置的评论应指向有关改进文档或服务器的建议,如果它们被实施或被认为无效/主题外,可能会被我们的版主删除。有关如何管理 Apache HTTP Server 的问题应直接发送到我们的 IRC 频道 #httpd(在 Libera.chat 上)或发送到我们的 邮件列表