您的位置:首页 > 理论基础 > 计算机网络

Apache2.4.4服务器配置文件httpd.conf的主要结构注释

2014-12-23 22:49 579 查看
# ServerRoot: 目录树的根结点。服务器配置、出错信息、日志文件都保存在根目录下。

# 不要再目录末尾加"/"

ServerRoot "D:/apache"

 

# Listen: 允许将Apache绑顶到指定的IP地址和端口,作为默认值的辅助选项。

#Listen 12.34.56.78:80

Listen 80

 

# 要使用基于DSO的功能模块,需要替换此处相应的

# `LoadModule' 行。这样在使用之前这些包含的标识都将生效。

LoadModule access_compat_module modules/mod_access_compat.so

LoadModule actions_module modules/mod_actions.so

LoadModule alias_module modules/mod_alias.so

LoadModule allowmethods_module modules/mod_allowmethods.so

LoadModule asis_module modules/mod_asis.so

LoadModule auth_basic_module modules/mod_auth_basic.so

#LoadModule auth_digest_module modules/mod_auth_digest.so

#LoadModule authn_anon_module modules/mod_authn_anon.so

LoadModule authn_core_module modules/mod_authn_core.so

#LoadModule authn_dbd_module modules/mod_authn_dbd.so

#LoadModule authn_dbm_module modules/mod_authn_dbm.so

LoadModule authn_file_module modules/mod_authn_file.so

等等

 

# ServerAdmin: 你的地址。如果服务器有任何问题将发信到这个地址。

# 这个地址会在服务器产生的某些页面中出现,例如,错误报告。

ServerAdmin 471911182@qq.com

 

# ServerName 允许设置主机名。如果与程序获得的不同,主机名将返回客户端。

#

# 注: 主机名不能随便指定。必须是你的机器有效的DNS名称。

# 如果你的主机没有注册DNS名,可在此输入IP地址。

# 此时必须用IP地址来访问。(如, http://123.45.67.89/)
# 这样扔可以完成重新定向的工作。

# 127.0.0.1 是TCP/IP的本地环路地址, 通常命名为localhost.

# 机器默认此地置为本身。 如果只是使用Apache来进行本地测试和开发,

# 可使用127.0.0.1 作为服务器名.

#ServerName www.woaixiaoyuan.com:80  #安装时自己弄得—_—

 

# DocumentRoot: 放置服务文档的目录。

# 默认状态下,所有的请求都以这个目录为基础。

# 但是直接符号连接和别名可用于指向其他位置。

DocumentRoot "D:/website"

 

# Apache访问的每个目录可设置相关的服务和特性是允许或不允许。(同样影响其子目录)

# 首先,设置"default"地址只有最基本的权限。

<Directory />

Options FollowSymLinks

AllowOverride None

< /Directory>

 

Directory语句就是用来定义目录的访问限制的,这里可以看出它的标准语法,为一个目录定义访问限制。上例的这个设置是针对系统的根目录进行的,设置了允许符号连接的选项FollowSymLinks
,以及使用AllowOverride None表示不允许这个目录下的访问控制文件来改变这里进行的配置,这也意味着不用查看这个目录下的相应访问控制文件。

由于Apache对一个目录的访问控制设置是能够被下一级目录继承的,因此对根目录的设置将影响到它的下级目录。注意由于AllowOverride None的设置,使得Apache服务器不需要查看根目录下的访问控制文件,也不需要查看以下各级目录下的访问控制文件,直至httpd.conf中为某个目录指定了允许Alloworride,即允许查看访问控制文件。由于Apache对目录访问控制是采用的继承方式,如果从根目录就允许查看访问控制文件,那么Apache就必须一级一级的查看访问控制文件,对系统性能会造成影响。而缺省关闭了根目录的这个特性,就使得Apache从httpd.conf中具体指定的目录向下搜寻,减少了搜寻的级数,增加了系统性能。因此对于系统根目录设置AllowOverride
None不但对于系统安全有帮助,也有益于系统性能。

 

# 这个地址应与DocumentRoot保持一致

<Directory "D:/website">

Options Indexes FollowSymLinks

# 此值可是: "None", "All", 或下列的组合:"Indexes",

AllowOverride None

# 控制哪些用户可从此服务器获得资料。

Order allow,deny

Allow from all

< /Directory>

 

AllowOverride的设置 对每个目录访问控制文件作用的影响 

All 缺省值,使访问控制文件可以覆盖系统配置 

None 服务器忽略访问控制文件的设置 

Options 允许访问控制文件中可以使用Options参数定义目录的选项 

FileInfo 允许访问控制文件中可以使用AddType等参数设置 

AuthConfig 允许访问控制文件使用AuthName,AuthType等针对每个用户的认证机制,这使目录属主能用口令和用户名来保护目录 

Limit 允许对访问目录的客户机的IP地址和名字进行限制

 

Options设置 
可以使用Options来控制这个目录下的一些访问特性设置

All 所有的目录特性都有效,这是缺省状态 

None 所有的目录特性都无效 

FollowSymLinks 允许使用符号连接,这将使浏览器有可能访问文档根目录(DocumentRoot)之外的文档 

SymLinksIfOwnerMatch 只有符号连接的目的与符号连接本身为同一用户所拥有时,才允许访问,这个设置将增加一些安全性 

ExecCGI 允许这个目录下可以执行CGI程序 

Indexes 允许浏览器可以生成这个目录下所有文件的索引,使得在这个目录下没有index.html(或其他索引文件)时,能向浏览器发送这个目录下的文件列表 

 

#这是设置默认索引文件,优先顺序自己排,中间是用空格隔开。

<IfModule dir_module>

    DirectoryIndexindex.php index.html index.htm index.html.var

</IfModule>

 

很多情况下,URL中并没有指定文档的名字,而只是给出了一个目录名。那么Apache服务器就自动返回这个目录下由DirectoryIndex定义的文件,当然可以指定多个文件名字,系统会这个目录下顺序搜索。当所有由DirectoryIndex指定的文件都不存在时,Apache服务器可以根据系统设置,生成这个目录下的所有文件列表,提供用户选择。此时该目录的访问控制选项中的Indexes选项(Options Indexes )必须打开,以使得服务器能够生成目录列表,否则Apache将拒绝访问。

 

ErrorLog "logs/error.log"

LogLevel warn

LogFormat "%h %l %u %t \"%r\" %>s %b\"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b"common     

# You need to enable mod_logio.c to use %I and %O

LogFormat "%h %l %u %t \"%r\" %>s %b\"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

CustomLog "logs/access.log" common

 

这里定义了系统日志的形式,对于服务器错误记录, 由ErrorLog、LogLevel 来定义不同的错误日志文件及其记录内容。 

对于系统的访问日志,缺省使用CustomLog参数定义日志的位置,缺省使用combined 参数指定将所有的访问日志放在一个文件中,然而也可以将不同种类的访问日志放在不同的日志记录文件中,这是通过在 CustomLog中指定不同的记录类型来完成的。common表示普通的对单页面请求访问记录,referer表示每个页面的引用记录,可以看出一个页面中包含的请求数,agent表示对客户机的类型记
4000
录,显然可以将现有的combined 定义的设置行注释掉,并使用common、referer和agent作为CustomLog的参数,来为不同种类的日志分别指定日志记录文件。

 

ScriptAlias /cgi-bin/ "D:/apache/cgi-bin/"

 

ScriptAlias用于URL路径的映射,是映射CGI程序的路径,这个路径下的文件都被定义为CGI程序,通过执行它们来获得结果,而非由服务器直接返回其内容。缺省情况下CGI程序使用cgi-bin目录作为虚拟路径。

 

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz

 

AddType参数可以为特定后缀的文件指定MIME类型,这里的设置将覆盖mime.types中的设置。

AddType application/x-httpd-php .php

#实质就是添加可以执行php的文件类型,比如你再加上一行“AddType application/x-httpd-php .htm”,则.htm文件也可以执行php程序了

 

 

# CGI模式安装:

ScriptAlias /php/ "D:/PHP/"

AddType application/x-httpd-php .php

Action application/x-httpd-php"/php/php-cgi.exe"

 

在CGI模式下,如果客户机请求一个php文件,Web服务器就调用php-cgi.exe去解释这个文件,然后再把解释的结果以网页的形式返回给客户机;

 

      

       以上就是Apache2.4.4服务器配置文件httpd.conf的主要结构,其中一些是我针对这次配置apache服务器时对配置文件httpd.conf所做的修改和注释,一些是在网上查找的解释,大同小异,最值得注意就是<Directory >这里,它针对分布在不同目录下的子目录定义访问控制权限。此外在注意一些版本的兼容性,就差不多了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: