阿帕奇 HTTP 服务器参考手册.docx_第1页
阿帕奇 HTTP 服务器参考手册.docx_第2页
阿帕奇 HTTP 服务器参考手册.docx_第3页
阿帕奇 HTTP 服务器参考手册.docx_第4页
阿帕奇 HTTP 服务器参考手册.docx_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

阿帕奇 HTTP 服务器参考手册-老文档一篇 作者:南非蜘 蛛发表于:2006-03-30 18:33:09 【发表评论】 【查看原文】 【Web服务器讨论区】 【关闭】 原始文件:manual.ps.gz 文件叙述:阿帕奇HTTP服务器参考手册 文件编号:LRG.LDTP.GUIDE.002 翻译日期:1996/09/01 翻译维护: 简体中文版维护:dfbb, APACHE AnHTTPServer ReferenceManual DavidRobinsonandtheApacheGroup,1995 / 保留所有权利。这个产品或文件受版权保护并且得在限制其用途,复制 ,散播以及编辑的授权下散播。细节请参阅阿帕奇授权书。 版权所有者不对这份手册的内容作任何保证及建议而且特别声明不保证 符合任何商业目的。 版权所有者保留修订这份手册的权利且其内容得依时变更而不必通知任 何人这些修订与变更。 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(/). 4.ApacheServer以及ApacheGroup这些名称没有随附前述的 的许可不得用来为这套软体的衍生产品背书或鼓励采用。 5.以任何形式散播都必须保留下列讯息: ThisproductincludessoftwaredevelopedbytheApacheGroup foruseintheApacheHTTPserverproject(/). Redistributionanduseinsourceandbinaryforms,withorwithout modification,arepermittedprovidedthatthefollowingcondictions aremet: 1.Redistributionofsourcecodemustretaintheabovecopyright notice,thislistofcondictionsandthefollowingdisclaimer. 2.Redistributioninbinaryformmustreproducetheabovecopyright notice,thislistofcondictionsandthefollowingdisclaimerin thedocumentationand/orothermaterialsprovidedwiththe distribution. 3.Alladvertisingmaterialsmentioningfeaturesoruseofthis softwaremustdisplaythefollowingacknowledge:Thisproduct includessoftwaredevelopedbytheApacheGroupforuseinthe ApacheHTTPserverproject(/). 4.ThenamesApacheServerandApacheGroupmustnotbeusedto endorseorpromptproductsderivedfromthissoftwarewithout priorwrittenpermission. 5.Redistributionofanyformwhatsoevermustretainthefollowing acknowledge:Thisproductincludessoftwaredevelopedbythe ApacheGroupforuseintheApacheHTTPserverproject (/). THISSOFTWAREISPROVIDEDBYTHEAPACHEGROUPASISANDANY 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,pleasesee/. 第一章 编译以及安装阿帕奇 1.1下载阿帕奇 最新的阿帕奇资讯可以在阿帕奇网站/找到。 此处会列出目前发行的版本,任何更新的公开测试版,同时还有映射的 (mirror)网站与匿名文件传输(ftp)站之细节。 1.2编译阿帕奇 这一版的阿帕奇支援所谓的选用性模组。然而,为了使这些模组能 有效率,此服务器必须知道哪些模组要编译进去;这需要产生一点短短 的程序码(modules.c)单纯地列出它们。 如果你满意我们的标准模组集,而且打算继续让它保持这样,那麽你可 以直接编辑我们提供的Makefile并且如同你以前作过的一样编译它。 如果你想要使用选用性模组,那麽无论如何,你都得执行配置指令稿。 这样做: 1.编辑Configuration这个文件。这里面包含每一种机器 的Makefile设定,而且在这底下还有个额外的节区列出要 编译进去的模组,以及包含这些模组的文件名称,你将得: (a)选择适合你机器的一种编译器以及编译选项。 (b)消掉相对於你想包含进去的模组上面的注解(文件底 端列出模组的那些行)或者加上对应你自己所撰写之 自制(custom)模组的一些新行。注意,如果你想要有 DBM验认(auth)的话必须明确地配置进去;只要消掉 对应的行上面的注解即可。 2.执行Configure这个指令shell; %Configure UsingConfigurationasconfigfile % 这会产生新版的Makefile以及modules.c文件。如果你 想要维护多个配置,那麽你可以这样,例如 %Configure-fileConfiguration.ai UsingalternateconfigfileConfiguration.ai % 3.键入make 我们放进阿帕奇发行套件里的模组是我们测试过而且有许多 阿帕奇发展群成员使用的模组。这些成员或协力团体(third parties)配合特殊需要或功能而贡献的一些额外模组可以在 ;里 找到。在该网页上有如何连结这些模组到阿帕奇核心程序码 里去的说明。 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位址的连线 或者只注意该服务机器的一个位址。服务器位址可以是: 。* 。一个IP位址 。一个完整的网际网路领域名称 如果此值是*的话,那麽该服务器将会监听每一个IP位址的连线, 否则它将只监听指定的IP位址。 这个选项可以用来作为另一种支援虚拟主机的方式取代; 节段。 3.7DefaultType指令 语法:DefaultTypemime-型态 预设:DefaultTypetext/html 用於:serverconfig,virtualhost,directory,.htacess 需求:FileInfo 状态:核心 有些时候服务器会被要求提供某份文件,此文件不能藉由其MIME型态 对映来决定型态。 服务器必须知会客户端文件所包含的型态(content-type),所以不知道 型态的时候它便使用DefaultType。例如: DefaultTypeimage/gif 对於包含许多没有.gif副文件名的gif图形目录是合适的。 3.8;指令 语法:;.; 用於:serverconfig,virtualhost 状态:核心 ;以及;用来把一组指令包装起来,这些指令 将只应用到所指明的目录及其子目录上。任何可以用於directory的 指令都可以使用。Directory是到某目录的完整路径,或是替代字元串 (widecardstring)。在替代字元串中?能够符合任何单一字元, 而*能够符合任何顺序的一些字元。例如: ; OptionIndexesFollowSymLinks ; 如果有多个directory节区能符合包含该文件的目录(或其父目录) ,那麽分布在.htaccess文件里的指令是以最短先符合的顺序加以应 用的,例如: ; AllowOverrideNone ; ; AllowOverrideFileInfo ; 存取/home/web/dir/doc.html这份文件的步骤是: 。应用AllowOverrideNone指令(关掉.htaccess文件)。 。应用AllowOverrideFileInfo指令(目录/home/web)。 。应用任何在/home/web/.htaccess里面的FileInfo指令。 这个directory节段典型是用在access.conf文件里,但它们可以 出现在任何配置档里。;指令不能巢状使用,而且不能出现 在;节段里。 3.9DocumentRoot指令 语法:DocumentRoot目录名称 预设:DocumentRoot/usr/local/etc/httpd/htdocs 用於:serverconfig,virtualhost 状态:核心 这个指令设定httpd从这个目录提供文件服务。除非符合像是Alias 这样的指令,服务器把所要求的URL附加到文件根(documentroot) 来组合到达文件的路径。例如: DocumentRoot/usr/web 如此对於/index.html文件的存取便会参照 到/usr/web/index.html。 3.10ErrorDocument指令 语法:ErrorDocument错误代码文件 用於:serverconfig,virtualhost 状态:核心 有问题或错误发生的状况下,可以配置阿帕奇做四种反应 1.如同NCSAhttpd1.3的反应 2.输出自定的(customized)讯息 3.重导到某个本地的URL以处理该问题错误 4.重导到某个外部的URL以处理该问题错误 2-4是使用ErrorDocument来配置,其後跟随HTTP反应码以及讯息 或是URL。 ErrorDocument500/cgi-bin/tester ErrorDocument404/cgi-bin/bad_urls.pl ErrorDocument401http:/www.foo.bar/subscription_info.html ErrorDocument403Sorrycantallowyouacesstoday 参阅:自定回应的文件。 3.11ErrorLog指令 语法:ErrorLog文件名称 预设:ErrorLoglogs/error_log 用於:serverconfig,virtualhost 状态:核心 这个错误记录指令设定文件名称,服务器将会把其遭遇的每个错误记录 到这个文件去。如果文件名称不是以/开始的话那麽它就会被假设为 相对於ServerRoot的路径。例如: ErrorLog/dev/null 这会有效地关掉错误记录。 3.12Group指令 语法:Groupunix-群组 预设:Group#-1 用於:serverconfig 状态:核心 这个Group指令设定服务器回答要求时所处的群组。为了要能够使用 这个指令,必须以root身分起始执行独立的服务器。Unix-群组可以 是这些其中之一: 群组的名称 藉由名称参照所给的群组。 #跟随著群组号码 藉由号码参照某个群组。 建议你特别设立一个群组来执行这个服务器。某些管理者使用nobody 这个使用者,但是这并非永远可行或合适的。 注意:如果你以非root使用者的身分启动这个服务器,它将无法切换 到指定的群组,并且取而代之的是它将会继续以原来的使用者所属群组 来执行。 安全:参阅User指令对安全情况的讨论。 3.13IdentityCheck指令 语法:IdentifyCheck布林值 预设:IdentifyCheckoff 用於:serverconfig 状态:核心 这个指令为每次的连线起始RFC931-相容的远端使用者名称记录,其中 客户端需得执行identd或者是类似的东西。这项资讯记录在存取记录 (accesslog)里。布林值是on或者off。 除非是作为基本的使用量追踪,这项资讯无论如何不能真的信赖。 3.14;指令 语法:;.; 用於:任何地方 状态:核心 ;以及;用来把一组存取控制指令包装起来,这些指令 将只应用到指定的存取方式上,其中的方式是指任何有效的HTTP方式 (method)。除了;或是;之外的任何指令都可以 使用;大部分都不会被;影响。例如: ; requirevalid-user ; 如果有个存取控制指令出现在;指令之外,那麽它会被应用到 所有的存取方式上。 3.15MaxClient指令 语法:MaxClients数字 预设:MaxClients150 用於:serverconfig 状态:核心 这个MaxClients指令设定所能支援的同时存取要求数目;不会建立比 此值还多的子程序。 3.16MaxRequestPerChild指令 语法:MaxRequestsPerChild数字 预设:MaxRequestsPerChild0 用於:serverconfig 状态:核心 MaxRequestsPerChild这个指令设定一个独立的子服务程序将能处理的 请求数量。在处理MaxRequestsPerChild个请求之後,子程序将会被 终止。如果MaxRequestsPerChild为0的话,那麽该程序永远不会 被终止。 MaxRequestsPerChild设为非0的值做为限制有两个好处: 。藉由记忆体使用量限制程序使用的记忆体数量; 。藉由赋予程序有限的存留时间,可以在服务器负载降低时协助 减少程序的数目。 3.17MaxSpareServers指令 语法:MaxSpareServers数字 预设:MaxSpareServers10 用於:serverconfig 状态:核心 MaxSpareServers这个指令设定最大闲置(idle)子服务程序数量。闲置 子服务程序是目前没有处理要求的程序。如果有多於MaxSpareServers 的暂停程序,那麽父程序会终止超过此数量的子程序。 只有在非常忙碌的站台上才有调整这个选项的需要。把这个参数设为非 常大的数目通常总是个不好的主意。 参阅MinSpareServers以及StartServers。 3.18MinSpareServers指令 语法:MinSpareServers数字 预设:MinSpareServers5 用於:serverconfig 状态:核心 MinSpareServers这个指令设定最大闲置(idle)子服务程序数量。闲置 子服务程序是目前没有处理要求的程序。如果有属於MinSpareServers 的暂停程序,那麽父程序会以最高每秒一个的速率建立新的子程序。 只有在非常忙碌的站台上才有调整这个选项的需要。把这个参数设为非 常大的数目通常总是个不好的主意。 参阅MaxSpareServers以及StartServers。 3.19Options指令 语法:Option选项选项. 用於:serverconfig,virtualhost,directory,.htaccess 需求:Options 状态:核心 Options这个指令控制某个特定目录所能使用的服务器特色。选项可以 设为NONE在此情况下没有额外的特色会起动,或者可以是下列的一个 或几个: All 除了MultiViews以外的所有选项。 ExecCGI CGI指令稿的执行权限。 FollowSymLinks 服务器将会跟照目录里的符号链结。 IncludesNOEXEC 服务端含入(Server-sideinclude)的权限。 Indexes 如果有个URL对映到所要求的目录,而且目录里面并没有目录 索引(DirectoryIndex,e.g.index.html)存在,那麽服务器将 会传回这个目录格式化後的列表。 MultiViews 允许MultiViews内容协商。 SymLinksIfOwnerMatch 只有在目标文件或目录与符号链结的拥有者相同时服务器才会去 跟照符号链结。 如果多个选项可以应用到某个目录上,那麽最底下的指定会完成;选项 不会合并。例如: ; OptionsIndexesFollowSymLinks ; ; OptionIncludes ; 这样只有Includes会设定到/web/docs/spec目

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论