Apache配置文件httpd.conf参数注解

本文基于Apache-2.4.18版本配置文件httpd.conf进行说明。

ServerRoot “/usr/local/apache”
Apache的顶层目录,可以理解为安装目录.

Listen 80
监听的端口号.

LoadModule
启动时加载的模块.

User daemon
Group daemon
用户与用户组,启动时用root启动,然后切到此参数指定的用户.

ServerAdmin [email protected]
你的邮件地址,服务器发生问题时可以给你发邮件.

ServerName localhost:80
服务器名称,通常可以自动获取,如果没有一个注册的DNS名称,就输入IP地址。编译安装apache后,启动时可能会有提示,需要设置一下这个选项.

DocumentRoot “/usr/local/apache/htdocs”
存放web文件的目录,URL的请求会自动转到该目录下的对应文件;

DirectoryIndex index.html
指定主页文件的名称,用户通过URL请求时,并没有指定具体的文件,则会搜索此参数指定的文件名称作为默认请求的主页。

ErrorLog “logs/error_log”
错误日志文件,这通常是一个相对路径,与ServerRoot参数共用.

LogLevel warn
日志级别,用来控制日志的数量,可设置的参数有debug, info, notice, warn, error, crit, alert, emerg.


Directory
对目录进行访问控制设置。

对根目录(ServerRoot所定义的apache的根目录)进行文档访问控制设置。
<Directory />
    AllowOverride none
    Require all denied
Directory>

对指定的目录进行文档访问控制设置。
<Directory "/usr/local/apache/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
Directory>

----------

AllowOverride
这是Directory中的一个指令,“.htaccess”文件允许的指令类型。只对Directory部份有效。

格式:
AllowOverride All|None|directive-type [directive-type]

当这个指令设置为None,并且“AllowOverrideList”设置为None,“.htaccess”文件将会被完全忽略。在这种情况下,服务器将不会尝试读取“.htaccess”文件。
当指令设置为All,“.htaccess”文件中所有的指令都是允许的。

directive-type可以是以下的指令选项:
AuthConfig:允许使用授权的指令;
FileInfo:允许使用指令控制文档类型;
Indexes:允许使用指令控制目录索引;
Limit:允许使用指令控制主机使用权(Allow, Deny and Order);
Options[=Option,...]:这个与上面介绍的Options选项相同。

----------

Require

格式:
Require all denied|granted

<Directory "/"> 默认是允许所有的访问的,意思就是一个URL可以映射任何Apache上的文件。
这显然是不安全的,所以Require参数就有了作用。
在根目录<Directory "/">中设置为denied,在允许客户端访问的目录中设置为granted,这样设置后,除了设置为granted的指定目录,其它目录都不可以通过URL访问,安全性有极大的提高。

----------

Options有以下选项:
None:没有额外的功能被启用;
All:除 MultiViews外的所有选项;
ExecCGI:允许使用mog_cgi执行CGI脚本;
FollowSymLinks:使用符号链接,默认设置,仅可用于<Directory>部份和.htaccess文件;
Includes:允许使用mod_include提供服务器端includes;
IncludesNOEXEC:允许服务器端includes,但是exec cmd与exec cgi是不可用的;
Indexes:如果一个URL请求映射到目录,但是目录中没有参数DirectoryIndex指定的主页文件,那样就会返回一个格式化的目录文件列表;
MultiViews:允许内容协商,服务器执行一个隐含的文件名模式匹配,输入index.html会显示,输入index也会显示;
SymLinksIfOwnerMatch:符号链接与目标文件或目录的所有者必须相同。

Files


    # Insert stuff that applies to cat.html here


    #...

对指定的或匹配的文件进行设置。


IfModule
用于对指定的模块做出标记,指令仅处理匹配的模块,非匹配模块将会忽略。

<IfModule dir_module>
    DirectoryIndex index.html
IfModule>

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
IfModule>

你可能感兴趣的:(Apache)