PHP网络编程学习笔记
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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中。