Apache配置文件的语法

admin  2016-07-10 20:28   Hits: 

Apache服务器配置文件都是使用Linux的脚本风格,例如以#作为注释,在配置文件中,很多是使用变量赋值语法风格,文件的每一行包含一个指令,它告诉Apache服务器以某种特定的方式完成某一项特定的任务。在指令的行尾使用反斜杠表示续行,但是反斜杠与下一行之间不能有任何其他字符包含空白字符。具体格式如下
 
Listen 80
ServerRoot "/usr/local/apache2"
 
配置文件中的指令是不区分大小写的,但是指令的参数通常是大小写敏感的,以#开头的行被视为注解并被忽略,注解不能出现在指令的后面,空白行和指令前的空白字符将被忽略,因此可以采用缩进以保持配置层次的清晰,当在非UNIX/Linux平台输入文件路径,也要使用/而不是\来分隔路径。可以用apachetcl configtest或者命令行选项-t检测配置文件中的错误,而无须启动Apache服务器
 
[root@localhost root]# /usr/local/apache2/bin/apachetcl configtest  //检测配置文件中的错误
Syntax OK  //表示没有错误
 
Apache是模块化的服务器,这意味着核心中只包含实现最基本的功能模块,扩展功能可以作为模块动态加载,默认只有base组的模块被编译进入了服务器,如果服务器在编译时包含了Dynamic Shared Object模块,那么各模块可以独立编译,并可以随时用LoadModule指令加载,比如php5模块就是这样动态加载到Apache服务器的。否则,要增加或减少模块必须重新编译Apache。用命令行-l可以查看已经编译到服务器中的模块,命令格式如下:
 
[root@localhost root]# /usr/local/apache2/bin/apachetcl -l //查看已经编译到Apache服务器中的模块
 
主配置文件中的指令对整个服务器都有效,用于特定模块的指令可以用<IfModule>指令包含起来使之有条件的生效,如果你只想改变某一部分的配置,你可以把指令嵌入到<Directory><DirectoryMatch><Files><FilesMatch><Location><LocationMatch>配置段中,这样就可以限制指令的作用域为文件系统中的某些位置或特定的URL,这些配置段还可以进行嵌套,以进行更精细的配置,Apache还具有同时支持多个站点的能力,称为虚拟主机。<VirtualHost>配置段中的指令仅对该段中的特定站点(虚拟主机)有效。
Apache可以使用分布在整个站点文件目录树结构中的特殊文件来进行分散配置,这些特殊的文件通常叫.htaccess,但是也可以用AccessFileName指令来改变它的名字。.htaccess文件中指令的作用域是存放它的目录及其子目录。.htaccess文件的语法与主配置文件相同。由于对每次请求都会读取.htaccess文件。所以修改该文件不需要重启Apache服务器。服务器管理员可以在主配置文件中使用AllowOverride指令来指定哪些指令可以在.htaccess文件中生效。
 
上一篇:Apache服务器配置文件位置,如何启动、重启、停
下一篇:Apache服务器全局参数设置