• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 配置文件

    配置文件的语法

    httpd配置文件每行包含一个指令。反斜杠“\”可以用作一行的最后一个字符,以指示该指令继续到下一行。反斜杠和行尾之间不得有其他字符或空格。

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

    配置文件中的指令不区分大小写,但是指令的参数通常区分大小写。以井号“#”开头的行被视为注释,并被忽略。注释不能与配置指令放在同一行。在指令之前会出现空格,因此为了清楚起见,您可以缩进指令。空行也将被忽略。

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

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

    常规配置文件中的变量替换和连接任何连续的行之后,一行的最大长度约为16 MiB。在.htaccess文件中,最大长度为8190个字符。

    您可以使用apachectl configtest-t命令行选项在不启动服务器的情况下检查配置文件中的语法错误。

    您可以使用mod_info-DDUMP_CONFIG所有包含的文件和解决环境变量和所有的意见和不匹配的转储配置<IfDefine>,并<IfModule>删除部分。但是,输出不会反映重复指令可能发生的合并或覆盖。

    模组

    相关模块相关指令
    • mod_so
    • <IfModule>
    • LoadModule

    httpd是模块化服务器。这意味着核心服务器中仅包含最基本的功能。可通过可加载到httpd中的模块获得扩展功能。缺省情况下,基部模块的集合被包括在编译时的服务器。如果将服务器编译为使用动态加载的模块,则可以分别编译模块并使用LoadModule指令随时添加模块。否则,必须重新编译httpd以添加或删除模块。通过将特定模块存在一个模块中,可以将配置伪指令包括在内<IfModule>。然而,<IfModule>块不是必需的,并且在某些情况下可能掩盖了您缺少重要模块的事实。

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

    指令范围

    相关模块相关指令
    • <Directory>
    • <DirectoryMatch>
    • <Files>
    • <FilesMatch>
    • <Location>
    • <LocationMatch>
    • <VirtualHost>

    放置在主配置文件中的指令适用于整个服务器。如果要更改配置只对服务器的一部分,可以通过将其放置在你的范围的指令<Directory><DirectoryMatch><Files><FilesMatch><Location>,和<LocationMatch>部分。这些部分将它们所包含的指令的应用限制为特定的文件系统位置或URL。它们也可以嵌套,以实现非常精细的配置。

    httpd可以同时服务许多不同的网站。这称为虚拟主机。也可以通过将指令放在<VirtualHost>各节中来确定其范围,以便它们仅适用于对特定网站的请求。

    尽管大多数指令都可以放在这些部分的任何部分中,但是某些指令在某些情况下没有意义。例如,控制进程创建的指令只能放在主服务器上下文中。若要查找可以在哪些节中放置的指令,请检查指令的上下文。有关更多信息,我们提供有关目录,位置和文件部分工作方式的详细信息。

    htaccess文件

    相关模块相关指令
    • AccessFileName
    • AllowOverride

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

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

    有关.htaccess文件的更多信息,请参见.htaccess教程。