apache配置文件相关总结。

与apache打交道,apache的配置文件应该会接触的比较多,最核心当属http.conf这个文件。这个文件里有很多detectives(命令),一些常用的命令:

1. 命令

DocumentRoot : 根目录,客户端有权限可访问的。配置虚拟主机对应变化。例如:

/usr/local/apache/htdocs

ServerRoot : 软件的安装目录。例如

ServerRoot /usr/local/apache

LoadModule : 动态加载其他的模块,语法格式为LoadModule 模块 模块文件名称,模块文件一般位于ServerRoot指定目录下的modules目录中,例如:

LoadModule actions_module modules/mod_actions.so

LoadFile: 类似楼上,也可以加载模块文件,例如:

LoadFile "libexec/libxmlparse.so" 

Include: 加载其他一些配置文件,可以使用shell-style通配符*,例如

 Include /usr/local/apache/conf/*.conf

如果加载的文件存在找不到的情况,该命令会出错,可以使用升级版命令,IncludeOptional。该命令会忽略找不到的错误。

Order: 用于设置指定目录的访问权限。不过2.4后好像被Require取代了

Require: 类似Order命令。设置访问权限,例如:

Require all denied/granted,代表全部拒绝/允许。

Require user/group userid/group-name [user-id]/[group-name] , 允许通过用户id或组名来控制

Require ip *.*.*.*,允许ip。空格隔多个

Options: 设置指定目录的一些选项,有MultiView(多语言相关),Indexed(当没有指定index.*,列出目录树),FollowSysLinks(允许目录下通过链接文件链接到目录外的文件或目录),ExecCGI(允许执行CGI脚本)等等

AllowOverride: 允许指定的目录下,使用.htaccess这个文件。必须加载了mod_rewrite模块。

 2. 一些容器命令

<Directory path></Directory>:用来设置指定的目录,子目录和文件。文件路径最好用引号包起来,因为防止有空格,而一个空格代表一个参数的结束。也可以用正则表达式来表示,但是必须前面加上~符号,或者使用DirectoryMatch容器命令。
<IfModule module_name></IfModule>:当指定的模块被加载了,才会执行容器里的命令。例如:

<IfModule mime_magic_module>
    MIMEMagicFile "conf/magic"
</IfModule>

 <Files file></Files>: 类似Directory,用来对指定文件操作。

 <FilesMatch file_reg></FilesMatch>: 类似DirectoryMatch,可以使用正则表达式。也可以用~符号代替。

 <Location url></Location>: 对指定的url操作。

<LocationMatch url_reg></Location>,同上。

 

相关参考:

http://httpd.apache.org/docs/2.4/mod/core.html#directory

http://www.bianceng.cn/Servers/web/201312/39092_4.htm

Leave a comment

电子邮件地址不会被公开。 必填项已用*标注