2.5 Apache配置文件详解
对于Apache服务器,大部分的功能和属性都可以通过配置文件来管理和配置。如果想更好地管理和配置Apache服务器,就必须对配置文件有详细的了解。Apache的配置文件数量较多,其中全部默认放在Apache主目录下的conf文件夹中,主要有:
★ mime.types:文件类型配置文件
★ charset.conv:语言编码列表配置文件
★ httpd-languages.conf:语言编码配置文件
★ httpd-info.conf:Apache信息配置文件
★ httpd-vhosts.conf:虚拟主机配置文件
★ httpd.conf:Apache服务器主配置文件
除了这些还有一些配置文件就不一一介绍了。下面就来详细介绍Apache的主配置文件httpd. conf里面的一些主要配置项。由于配置项较多,这里只介绍主要的配置项:
★ ServerRoot:指定服务器的根目录,用于保存其配置、错误和日志等文件,如ServerRoot "/usr/loacl/apache2"
★ LockFile:指定串行访问的锁文件的路径,这个文件必须保存在本地磁盘上,如LockFile logs/accept.lock
★ PidFile:指定记录服务器启动进程号的文件,如PidFile logs/httpd.pid
★ Timeout:指定Apache服务器接收和发送数据的超时时间,单位为秒,如Timeout 300
★ KeepAlive:指定Apache服务器是否允许稳固的连接(每个连接有多个请求),设为"Off"则停用,如KeepAlive On
★ MaxKeepAliveRequests:指定稳固连接期间允许的最大请求数,如果设为0表示无限制接入,建议设为一个较大的值,以便提高性能,如MaxKeepAliveRequests 100
★ KeepAliveTimeout:指定同一个客户端在与服务器的同一个连接上接收请求的超时时间,单位为秒,如KeepAliveTimeout 15
★ Listen:指定与Apache Web服务绑定的IP地址和端口,以取代默认值。如Listen 11.22.33.44:80
★ LoadModule:使用LoadModule配置项来指定动态模块,以便Apache能够使用那些以DSO模式编译的模块中的函数,而那些以静态编译的模块不用在这里列出 (即以“httpd -l”列出的模块),如LoadModule php5_module modules/libphp5.so
★ User: 指定httpd运行时的用户,如User nobody
★ Group:指定httpd运行时的用户组,如Group nobody
★ ServerAdmin:指定Apache服务器管理员的邮件地址,当发生问题时Apache将向这个地址发出邮件,如ServerAdmin liuranball@gmail.com
★ ServerName:指定Apache服务器的DNS地址和端口号,通常这个值是自动指定的,建议显式地设置,以防止启动时出错,如ServerName www.dalouis.com:80
★ UseCanonicalName:指定决定Apache如何构造URL、SERVER_NAME和SERVER_PORT,当设置为Off时,Apache会使用用户端提供的主机名和端口号,当设置为On时,Apache会使用ServerName配置项的值,如UseCanonicalName Off
★ DocumentRoot:指定网页文档的根目录。默认情况下,所有的请求从这个目录进行应答,也可以使用别名和符号链接来指向其他的位置,如DocumentRoot "/usr/local/apache2/htdocs"
★ ExtendedStatus:指定Apache服务器状态信息的模式,当设置为on时Apache会产生包含全部状态的信息,当设置为off时Apache会产生基本信息,默认为off
★ Order Deny,Allow:设定访问文件系统所在的目录的权限顺序,也可以设定为Order Allow,Deny
★ Deny from all:设定禁止访问文件系统所在的目录
★ Allow from all:设定允许所有人访问文件系统所在的目录
★ Options:设定文件系统所在目录的属性,它的值可以是“None”、“All”或者下列选项的任意组合:Indexes Includes FollowSymLinks SymLinksIfOwnerMatch ExecCGI MultiViews,如Options None
★ AllowOverride:设定被放置在.htaccess文件中的配置项,它的值可以是 “All”,“None”,或者下列配置项的组合: Indexs Options FileInfo AuthConfig Limit,如AllowOverride None
★ DirectoryIndex:指定当客户请求是一个目录时,Apache向用户提供服务的默认文件名列表,它可以是一个类型映像文件index.html.var并提供一个文档处理列表,也可以分别指出所有类型文件,如DirectoryIndex index.php index.html index.html.var
★ TypesConfig:指定mime.types文件的位置,如TypesConfig conf/mime.types
★ DefaultType:指定当不能确定MIME类型时服务器提供的默认MIME类型,对于主要包含text或HTML文档服务的服务器,则设置为“text/plain”,如DefaultType text/plain
★ HostnameLookups:指定记录用户端的名字还是IP地址,如果设置为on则记录主机名,如http://www.localhost.org:;如果设置为off则记录为127.0.0.1。默认值为off,如果设为on,则每个用户端的请求都会对nameserver进行至少一次的查询,建议不要修改默认值
★ EnableSendfile:指定是否使用sendfile kernel支持发送文件。默认为on,如果服务器上安装有网络文件系统(NFS),建议设置成off,如EnableSendfile off
★ ErrorLog:指定错误日志文件,如ErrorLog logs/error_log
★ LogLevel:指定记录在错误日志文件中的日志级别,可选值包括:debug、info、notice、warn、error、crit、alert、emerg,设置方法如LogLevel warn
★ Alias:指定一个参数的别名,格式如下:Alias别名 真实名
★ ScriptAlias:指定包含服务脚本的目录,本质上与Alias一样,除了这里的文档在请求时作为程序处理以外,配置方法如ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
★ Redirect:重定向向客户请求的URL的位置,配置方法如:Redirect permanent /php http://www.example.com/phptest
★ AddEncoding:指定Apache输入页面的编码格式,注意:
不是所有的浏览器都支持这个选项。配置方法如:AddEncoding x-gzip gz tgz
★ AddDefaultCharset:指定发送出的所有页面默认的字符集,配置方法如AddDefaultCharse GB2312
★ AddType: 指定文件类型,可以添加或覆盖mime.types文件中配置的MIME,配置方法如:AddType image/x-icon .ico
★ AddHandler:指定映射确定的文件扩展名到“handlers”,它既能编译到服务器中也可以添加到Action配置项中。要使它可用,还需要在Options中添加“ExecCGI”,如:
AddHandler php-cgi-script .php
Action PHP php-cgi-script /php5/php
Options +ExecCGI
★ Action:指定当调用匹配的文件时要执行的脚本。可以减少些经常使用的CGI脚本的URL路径名的重复输入。
小技巧:
开发人员也可以写一些配置文件,使用Include语句插入到主配置文件httpd.conf中。