阿帕奇 HTTP 服务器参考手册.docx
《阿帕奇 HTTP 服务器参考手册.docx》由会员分享,可在线阅读,更多相关《阿帕奇 HTTP 服务器参考手册.docx(81页珍藏版)》请在冰豆网上搜索。
阿帕奇HTTP服务器参考手册
原始文件:
manual.ps.gz
文件叙述:
阿帕奇HTTP服务器参考手册
文件编号:
LRG.LDTP.GUIDE.002
翻译日期:
1996/09/01
翻译维护:
asdchen@
简体中文版维护:
dfbb,fangh@
APACHE
AnHTTPServer
ReferenceManual
@DavidRobinsonandtheApacheGroup,1995
http:
//www.apache.org/
保留所有权利。
这个产品或文件受版权保护并且得在限制其用途,复制
,散播以及编辑的授权下散播。
细节请参阅阿帕奇授权书。
版权所有者不对这份手册的内容作任何保证及建议而且特别声明不保证
符合任何商业目的。
版权所有者保留修订这份手册的权利且其内容得依时变更而不必通知任
何人这些修订与变更。
Allrightsreserved.Thisproductordocumentationprotectedby
copyrightandisdistributedunderlicencesrestrictingits
use,copying,distributionanddecompilation.SeetheApachelicence
fordetails.
Thecopyrightownergivesnowarrantiesandmakesnorepresentations
aboutthecontentsofthismanualandspecificallydisclaims
warrantiesofmerchantabilityoffitnessforanypurpose.
TheCopyrightownerreservestherighttorevisethismanualand
makechangesfromtimetotimeinitscontentswithoutnotifyingany
personofsuchrevisionorchanges.
TRADEMARKS
UnixisaregisteredtrademarkofUNIXSystemLaboratories,Inc.
SunandSunOsaretrademarksofSunMicrosystems,Inc.Netscapeisa
trademarkofNetscapeCommunicationsCorporation.Allotherproduct
namesmentionedhereinaretrademarksoftheirrespectiveowners.
目录(Contents)(略)
序(Preface)
这份手册是1.0版阿帕奇服务器(ApacheHTTPserver)的文件。
这个
服务器是阿帕奇计划的产品,此计划试图回应某些对积极发展一套可以
免费取得之HTTP服务器的关心。
这个计划的目标是提供一个安全的,
有效率的而且可以扩充功能的服务器,此服务器提供HTTP服务且符合
目前的HTTP标准。
这套阿帕奇httpd服务器的设计不但与NCSAhttpd1.3相容,并且
提供常常有人要求的特色,像是
。
作为身分验认之用的DBM资料库
。
自定的(customised)错误与问题回应方式
。
多重的directoryindex指令
。
不限次数的Alias以及Redirect指令
。
以内容为基础的(Content-based)文件协商(negotiation)
。
虚拟服务器
阿帕奇授权书
Copyright1995TheApacheGroup.Allrightsreserved.
假若符合下列条件,无论是否经过修改,以原始程序及执行程序的形式
散播与使用都是许可的:
1.散播原始程序码必须保留上述的版权告示,这份条件列表以及下列
声明。
2.以执行程序码的形式散播必须在随附散播的文件以及/或是资讯中
重现上述的版权告示,这份条件列表以及下列声明。
3.所有提及或使用这套软体特色的广告都必须显示下列讯息:
`ThisproductincludessoftwaredevelopedbytheApacheGroup
foruseintheApacheHTTPserverproject(http:
//www.apache.org/).'
4.`ApacheServer'以及`ApacheGroup'这些名称没有随附前述的
的许可不得用来为这套软体的衍生产品背书或鼓励采用。
5.以任何形式散播都必须保留下列讯息:
`ThisproductincludessoftwaredevelopedbytheApacheGroup
foruseintheApacheHTTPserverproject(http:
//www.apache.org/).'
Redistributionanduseinsourceandbinaryforms,withorwithout
modification,arepermittedprovidedthatthefollowingcondictions
aremet:
1.Redistributionofsourcecodemustretaintheabovecopyright
notice,thislistofcondictionsandthefollowingdisclaimer.
2.Redistributioninbinaryformmustreproducetheabovecopyright
notice,thislistofcondictionsandthefollowingdisclaimerin
thedocumentationand/orothermaterialsprovidedwiththe
distribution.
3.Alladvertisingmaterialsmentioningfeaturesoruseofthis
softwaremustdisplaythefollowingacknowledge:
`Thisproduct
includessoftwaredevelopedbytheApacheGroupforuseinthe
ApacheHTTPserverproject(http:
//www.apache.org/).'
4.Thenames`ApacheServer'and`ApacheGroup'mustnotbeusedto
endorseorpromptproductsderivedfromthissoftwarewithout
priorwrittenpermission.
5.Redistributionofanyformwhatsoevermustretainthefollowing
acknowledge:
`Thisproductincludessoftwaredevelopedbythe
ApacheGroupforuseintheApacheHTTPserverproject
(http:
//www.apache.org/).'
THISSOFTWAREISPROVIDEDBYTHEAPACHEGROUP``ASIS''ANDANY
EXPRESSEDORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE
IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARITICULAR
PURPOSEAREDISCLAIMED.INNOEVENTSHALLTHEAPACHEGROUPORITS
CONTRIBUTORSBELIABLEFORANYDIRECT,INDIRECT,INCIDETAL,SPECIAL,
EXEMPLARYORCONSEQUENTIALDAMAGES(INCLUDING,BUTNOTLIMITEDTO,
PROCUREMENTOFSUBSTITUTEGOODSORSERVICES;LOSSOFUSE,DATAOR
PROFITS;ORBUSINESSINTERRUPTION)HOWEVERCAUSEDANDONANYTHEORY
OFLIABILITY,WHERHERINCONTRACT,STRICTLIABILITY,ORTORT
(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAYOUTOFTHEUSE
OFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOFSUCHDAMAGE.
Thissoftwareconsistsofvoluntarycontributionsmadebymany
individualsonbehalfoftheApacheGroupandwasoriginally
basedonpublicdomainsoftwarewrittenattheNationalCenter
forSupercomputingApplications,UniversityofIllinois,Urbana-
Champaign.FormoreinformationontheapacheGroupandtheApache
HTTPserverproject,pleaseseehttp:
//www.apache.org/.
第一章
编译以及安装阿帕奇
1.1下载阿帕奇
最新的阿帕奇资讯可以在阿帕奇网站http:
//www.apache.org/找到。
此处会列出目前发行的版本,任何更新的公开测试版,同时还有映射的
(mirror)网站与匿名文件传输(ftp)站之细节。
1.2编译阿帕奇
这一版的阿帕奇支援所谓的‘选用性模组’。
然而,为了使这些模组能
有效率,此服务器必须知道哪些模组要编译进去;这需要产生一点短短
的程序码(`modules.c')单纯地列出它们。
如果你满意我们的标准模组集,而且打算继续让它保持这样,那麽你可
以直接编辑我们提供的Makefile并且如同你以前作过的一样编译它。
如果你想要使用选用性模组,那麽无论如何,你都得执行配置指令稿。
这样做:
1.编辑`Configuration'这个文件。
这里面包含每一种机器
的Makefile设定,而且在这底下还有个额外的节区列出要
编译进去的模组,以及包含这些模组的文件名称,你将得:
(a)选择适合你机器的一种编译器以及编译选项。
(b)消掉相对於你想包含进去的模组上面的注解(文件底
端列出模组的那些行)或者加上对应你自己所撰写之
自制(custom)模组的一些新行。
注意,如果你想要有
DBM验认(auth)的话必须明确地配置进去;只要消掉
对应的行上面的注解即可。
2.执行`Configure'这个指令shell;
%Configure
Using`Configuration'asconfigfile
%
这会产生新版的Makefile以及modules.c文件。
如果你
想要维护多个配置,那麽你可以这样,例如
%Configure-fileConfiguration.ai
UsingalternateconfigfileConfiguration.ai
%
3.键入`make'
我们放进阿帕奇发行套件里的模组是我们测试过而且有许多
阿帕奇发展群成员使用的模组。
这些成员或协力团体(third
parties)配合特殊需要或功能而贡献的一些额外模组可以在
http:
//www.apache.org/dist/contrib/modules/>里
找到。
在该网页上有如何连结这些模组到阿帕奇核心程序码
里去的说明。
1.3安装阿帕奇
编译之後,你将会在src/目录里获得一份称为`httpd'的可执行文件。
阿帕奇的可执行文件发行套件会提供这个文件。
下一个步骤是为服务器编辑配置档。
你应该会在称为`conf'的目录里
发现三个配置档的发行版本:
srm.conf-dist,access.conf-dist以及
httpd.conf-dist。
把它们复制成所需的srm.conf,access.conf及
httpd.conf文件。
首先编辑httpd.conf。
这设定此服务器一般的属性;端口号,执行者的
身分等等。
接下来编辑srm.conf文件;这设定文件树的根目录,指定像是
服务端剖析的HTML或内部的影像地图(imagemap)剖析等等功能。
最後
编辑access.conf文件,至少作些存取(access)的基本设定。
最後,调用httpd程序,使用-f参数配合httpd.conf所在的完整
路径。
像是,最普遍的例子:
/usr/local/etc/apache/src/httpd-f
/usr/local/etc/apache/conf/httpd.conf
现在服务器应该已经开始执行。
依照预设srm.conf以及access.conf这些文件是藉由名称定位的;
要藉由其它的名称来指定调用它们的话,可以在httpd.conf里面使用
AccessConfig以及ResourceConfig指令。
第二章
启动阿帕奇
2.1启动阿帕奇
httpd这支程序可以藉由网际网路服务程序inetd在每一次有连线要
进入HTTP服务的时候启动,或者另一种方式,它也可以作为服务程序
(daemon)持续地执行,处理请求。
无论选择哪一种方式,都必须设定这
个ServerType指令告诉服务器它要如何执行。
2.2命令列选项
下列选项可以用在httpd的命令列上:
-dserverroot
把ServerRoot这个参数的起始值设定为serverroot。
这可以
藉由在配置文件里面的ServerRoot命令来加以改变。
此预设为
/usr/local/etc/httpd。
-fconfig
启动时执行在config文件里面的指令。
如果config没有以/
作为开始的话,那麽它会被当作相对於ServerRoot的路径。
此
预设值是conf/httpd.conf。
-X
以单一程序(single-process)模式执行,只用在内部除错;服务
程序不会脱离终端作业或是产生任何子程序。
不要使用这个模式
来提供正常的网页服务。
-v
列印httpd的版本,然後结束。
-?
列印httpd选项的一份列表,然後结束。
2.3配置档
此服务器将会读取三个配置指令文件。
任何指令都可以出现在这些文件
任何一个里面。
这些文件的名称是相对於服务器的根目录(serverroot);
这是根是藉由ServerRoot指令,或是-d这个命令列旗标所指定的。
依惯例这些文件是:
conf/httpd.conf
包含控制服务程序运作的指令。
文件名称可以配合-f命令列旗
旗标加以改变。
conf/srm.conf
包含控制服务器提供给客户端之文件规格的指令。
文件名称可以
配合ResourceConfig指令加以改变。
conf/access.conf
包含控制文件之存取的指令。
文件名称可以配合AccessConfig
指令加以改变。
无论如何,这些惯例并不需要完全遵奉。
此服务器也会读取一个包含MIME文件型态的文件;这个文件名称藉由
TypesConfig指令设定,而且有个conf/mini.types作为预设。
2.4记录档
2.4.1pid档
服务程序启动时,它把父程序httpd的程序码(processid)存往这个
log/httpd.pid文件。
这个文件名称可以配合PidFile指令加以改变
。
这个程序码由管理者用来重新启动或终止服务程序;一个HUP信号
会使服务程序重新读取其配置档而一个TERM信号会使它终止。
如果程序不正常地死掉(或被杀掉),那麽必须杀掉httpd子程序。
2.4.2错误记录
服务器会将错误讯息记录到一个记录档去,预设为log/error_log。
文件名称可以藉由ErrorLog指令设定;可以为不同的虚拟主机设定不
同的错误记录。
2.4.3传输记录
服务器一般会将每个请求记录到一个传输档,预设为logs/access_log
。
文件名称可以藉由TransferLog指令设定;可以为不同的虚拟主机
设定不同的传输记录。
第三章
阿帕奇核心部份(core)的特色
这些配置参数控制核心部份的阿帕奇特色,而且是固定可以使用的。
3.1AccessConfig指令
语法:
AccessConfig文件名称
预设:
AccessConfigconf/access.conf
用於:
serverconfig,virtualhost
状态:
核心
此服务器读取ResourceConfig文件之後将会继续读取这个文件以取得
更多指令。
文件名称系相对於ServerRoot路径。
此特色可以使用如下
的方式关闭:
AccessConfig/dev/null
原本这个文件只包含节区;事实上它现在可以包含任何
可以用於服务器配置的指令。
3.2AccessFileName指令
语法:
AccessFileName文件名称
预设:
AccessFileName.htaccess
用於:
serverconfig,virtualhost
状态:
核心
回传文件给客户端的时候,如果目录的存取控制档有启动,服务器会在
到达这份文件的路径中的每个目录里以此名称搜寻存取控制档。
例如:
AccessFileName.acl
在回传/usr/local/web/index.html这份文件前,此服务器将会读取
/.acl,/usr/.acl,/usr/local/.acl以及/usr/local/web/.acl以
取得指令,除非以如下的方式关闭它们:
AllowOverrideNone
3.3AllowOverride指令
语法:
AllowOverrideoverrideoverride...
预设:
AllowOverrideAll
用於:
directory
状态:
核心
服务器找到AccessFileName指定的文件时会需要知道该文件所宣告的
哪些指令可以改变稍早的存取资讯。
Override可以设为None在此情况下服务器将不会读取该档,而设为
All的话服务器将会允许所有的指令,或是下列其中之一:
AuthConfig
允许验认指令的使用(AuthDBMGroupFile,AuthDBMUserFile,
AuthGroupFile,AuthName,AuthType,AuthUserFileand
require)
FileInfo
允许控制文件型态之指令的使用(AddEncoding,AddLanguage,
AddType,DefaultTypeandLanguagePriority)
Indexes
允许控制目录索引之指令的使用(AddDescription,AddIcon,
AddIconByEncoding,AddIconByType,DefaultIcon,
DirectoryIndex,FancyIndexing,HeaderName,IndexIgnore,
IndexOptionsandReadmeName)
Limit
允许控制存取主机之指令的使用(allow,denyandorder)
Options
允许控制特定目录特色之指令的使用(OptionsandXbitHack)
3.4AuthName指令
语法:
AuthName验认领域
用於:
directory,.htaccess
需求:
AuthConfig
状态:
核心
这个指令为某个目录设定验认区域的名称。
这个区域会送给客户端所以
使用者知道要传送的使用者名称以及密码。
它必须藉由AuthType以及
require指令来完成,而且要有像AuthUserFile以及AuthGroupFile
这些指令配合运作。
3.5AuthType指令
语法:
AuthType型态
用於:
directory,.htaccess
需求:
AuthConfig
状态:
核心
这个指令为某个目录选择使用这验认型态。
目前只有Basic实作出来
。
它必须藉由AuthName以及require指令来完成,而且还要有像是
AuthUserFile以及AuthGroupFile这些指令配合运作。
3.6BindAddress指令
语法:
BindAddress服务器位址
预设:
BindAddress*
用於:
serverconfig
状态:
核心
一台Unix的http服务器可以监听到该服务机器每个IP位址的连线