Apache服务器需要各种设置,定义自己使用各种参数来提供Web服务。
User和Group配置是Apache的安全保证。Apache在开启后,将自行转换用户和工作组名称,这样就降低了服务器被入侵的可能性。由于服务器必须执行改变身份的setuid( )操作,因此初始进程应该具备root权限,但是如果使用非root用户来启动Apache,则该配置将不会发挥作用。
配置文件里必须改变的也就是这一项了,用于指定管理员的邮件地址,在http服务出现问题后返回给浏览器,以便让用户和管理员联系,报告错误。
可设置主机的名称。此名称会被送到远程连接程序,以取代安装Apache Server主机的真实名称。请注意这项并不是随意杜撰一个名称就会生效,此处所赋予的名称必须是有在域名服务器(DNS)注册的主机名称。若主机并没有已注册的名称,则可以填上IP地址。默认是Localhost,如果加上#号,则关闭该功能。80时默认的端口号,是指定Apache server监听的端口号。
UseCanonicalName是Apache服务器1.3.x版后开放的功能。提供名称一致性服务,当指令打开时,Apache经常使用ServerName和Port指令创建引用在相同计算机上文件的URL(例如http://www.xxx..com/fedora 6/)。当指令关闭,URL由客户机指定的内容组成。例如,如果客户机在相同域内,URL可能是http://lin.xxx..com/fedora 6/或http://lin/fedora 6。
这可能有一些问题特别是当访问控制规则需要用户名/口令验证时,如果已经通过主机lin.xxx.com验证的客户机发送一个到www.xxx.com(物理上是同一机器)的链接,系统将再次提示此客户机输入用户名和口令。推荐打开UseCanonicalName,这样在前面的情况下,不需要再次验证,因为任何对相同服务器的引用总是解释为www.xxx.com。
UseCanonicalName现设定为否。不将其开启。
Web服务器的文档根目录通常是所有的HTML文档存储的主目录。当Apache收到一个对文档的请求后,它将从相对这个目录开始搜寻该文档。例如:http://www.xxx.com/fedora 6.html真正指向的文件/var /www/html。
UserDir设置为public_html,每个该服务器的账号都可以在自己的Home目录下建立个人网站。如果Apache收到一个访问/fedora 6/index.htm文档的请求,它将在用户的Fedora 6目录下的public_html目录中去查找index.html文件。这样维护public_html目录的工作就完全取决于用户本人了。
这也意味着到Web服务器任何具有一个有效的登录名的用户,都可以很容易地创建自己的网站。
如果服务器上绝大多数的文件是文本文件或者HTML文档,那么“text/plain”是一个非常好的设置,但是如果绝大多数的文件为二进制文件,比如应用程序或者图片等,那么可以使用“application/octct-stream”替代,以防止浏览器尝试将二进制文件当作文本来显示。
用AccessFileName指定保护目录设置文件的文件名称,设置为“.htaccess”。.htaccess文件可让用户指定使用者存取目录的权限。
此模块可让服务器根据文件的内容来判断文件的类型,但此模块并非默认加载的,若要使用此功能,只需在本文件的LoadModule处找到此模块,把前面的#号去掉,再重启服务器即可加载。
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
HostnameLookups命令控制是否要记录客户端的IP地址。因为解析客户端的主机名至少要调用一次DNS查询,所以该选项最好关闭以便降低由每个访问请求所产生的网络负载问题。关闭后Apache则自动记录客户端的主机名。
ErrorLog命令定义了错误日志文件存储的位置。错误日志文件存储发生的请求错误或者相应错误的信息,在调试CGI程序时特别有用。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
LogLevel和LogFormat定义了Syslog级别和应该采用的日志信息的格式。如果默认的格式没有提供足够的信息,可以自己定义日志的格式:
CustomLog logs/access_log common
CustomLog命令使用不同的LogFormat来提供请求(access)、客户端类型(agent)、引用页等信息记录到独立的文件中的能力。
ScriptAlias命令告诉Apache存储在哪个特定目录下的文件是脚本,应该被执行。
它允许将一个目录及其子目录标记为一个只包含CGI程序的目录。在这里,定义了目录/cgi-bin/ "/var/www/cgi-bin/"作为包含CGI程序的主目录,当客户端要访问一个CGI脚本时例如:http://www.xxx.com/cgi-bin/text.pl前面的定义会指引Apache去执行文件/var/www/
cgi-bin/text.pl。并将结果返回到用户。
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
IndexOptions命令定义为,当Apache收到一个访问目录而不是访问文件的请求后,它首先会查找该目录的索引文件,通常是index.html。如果该文件不存在,Apache会返回该目录内容的列表。列表的风格由IndexOptions命令控制。
如果想要一种简单的目录,可以将这个选项设置Standard。如果要目录总的每个文件返回一个图标和描述,则要设置成FancyIndexing,但是如果使用FancyIndexing,则图标要由Addicon这个命令来设定。
IndexOptions FancyIndexing VersionSort NameWidth*
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip这里的CMP,/icons/ compressed.gif是相对于文档根的icon文件的相对目录,而x-compress x-gzip则是文件扩展名列表。
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
最后一行是DefaultIcon命令,这样会为没有定义过图标的文件显示默认的图标。要为使用FancyIndexing的文件增加描述,需要使用AddDescription命令,标准引用如下:
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
IndexIgnore命令允许产生的目录列表忽略一些文件名和文件扩展名。默认如下:
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t