Apache服务翻译:李纳
参考文献:http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/index.html
#
#ThisisthemainApacheHTTPserverconfigurationfile.Itcontainsthe
#configurationdirectivesthatgivetheserveritsinstructions.
#See<URL:http://httpd.apache.org/docs/2.2>fordetailedinformation.
#Inparticular,see
#<URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
#foradiscussionofeachconfigurationdirective.
这是Apache服务的主要配置文件,欲知详细信息请阅览官网在线文献。
#
#DoNOTsimplyreadtheinstructionsinherewithoutunderstanding
#whattheydo.They'rehereonlyashintsorreminders.Ifyouareunsure
#consulttheonlinedocs.Youhavebeenwarned.
请不要一知半解的。建议你勤快一点,多使用在线帮助文档。
#
#Configurationandlogfilenames:Ifthefilenamesyouspecifyformany
#oftheserver'scontrolfilesbeginwith"/"(or"drive:/"forWin32),the
#serverwillusethatexplicitpath.Ifthefilenamesdo*not*begin
#with"/",thevalueofServerRootisprepended--so"logs/foo.log"
#withServerRootsetto"D:/ProgramFiles/Apache2.2"willbeinterpretedbythe
#serveras"D:/ProgramFiles/Apache2.2/logs/foo.log".
相对路径和绝对路径。如果是相对路径,ServrRoot="D:/ProgramFiles/Apache2.2"。那么此文件其它参数中如果出现不以“/”开头的路径,如“logs/foo.log”,则实际完整的路径应该是与ServerToot参数值相加后所得。
#
#NOTE:Wherefilenamesarespecified,youmustuseforwardslashes
#insteadofbackslashes(e.g.,"c:/apache"insteadof"c:apache").
#Ifadriveletterisomitted,thedriveonwhichhttpd.exeislocated
#willbeusedbydefault.Itisrecommendedthatyoualwayssupply
#anexplicitdriveletterinabsolutepathstoavoidconfusion.
注意:路径必须使用“/”来替代Windows操作系统中的路径符号“”,在这里没有反斜杠。写绝对路径时不要忘记了盘符。当然了,Linux系统下是没有盘符一说的。说谁呢,大家清楚。
#
#ServerRoot:Thetopofthedirectorytreeunderwhichtheserver's
#configuration,error,andlogfilesarekept.
ServerRoot,根目录。这个参数用于这个配置文件中出现的所有相对路径。
单就“ServerRoot”用途做一形象的比喻来讲,生活到处都有隐含的信息。而对于计算机而言,你必须事先将隐含的信息用一公共参数保存起来。所谓“予人方便,然后方便自己”。
#
#Donotaddaslashattheendofthedirectorypath.Ifyoupoint
#ServerRootatanon-localdisk,besuretopointtheLockFiledirective
#atalocaldisk.IfyouwishtosharethesameServerRootformultiple
#httpddaemons,youwillneedtochangeatleastLockFileandPidFile.
不要在路径最后加“/”。比如应该是“D:/Apache2.2”而不是“D:/Apache2.2/”。
如果ServerRoot设置的路径不是本地硬盘,需要你在远程设备上的某一固定目录映射到本地硬盘上。如果你打算将ServerRoot参数值为其它web服务共享,那你至少需要修改下
#
ServerRoot"D:/ProgramFiles/Apache2.2"
ServerRoot参数。中间有空格,空格前是参数名称,空格后是参数值。
#
#Listen:AllowsyoutobindApachetospecificIPaddressesand/or
#ports,insteadofthedefault.Seealsothe<VirtualHost>
#directive.
#ChangethistoListenonspecificIPaddressesasshownbelowto
#preventApachefromglommingontoallboundIPaddresses.
允许你使用特定的IP和端口来代替默认值。你也可以参阅下面的虚拟主机配置环节。
修改成特定的IP地址可以只允许来自指定的IP主机请求允许并响应。
#
#Listen12.34.56.78:80
Listen80
WEB服务端口参数,一般只修改默认的端口。
#
#DynamicSharedObject(DSO)Support
动态共享对象,文件后缀名为“.so”。相当于功能扩展插件。类似于“DLL”文件。
请情请自行网上查阅。
#
#TobeabletousethefunctionalityofamodulewhichwasbuiltasaDSOyou
#havetoplacecorresponding`LoadModule'linesatthislocationsothe
#directivescontainedinitareactuallyavailable_before_theyareused.
#Staticallycompiledmodules(thoselistedby`httpd-l')donotneed
#tobeloadedhere.
使用一个DSO文件,只需参照这里的格式在前面加“LoadModul”,前提是这个DSO文件已经通过调试可以正常被加载运行。
静态函数库是不需要在这里配置的。这样的库后缀名为“.a”,现在已经不多用了。
#
#Example:
#LoadModulefoo_modulemodules/mod_foo.so
#
LoadModuleactions_modulemodules/mod_actions.so
LoadModulealias_modulemodules/mod_alias.so
LoadModuleasis_modulemodules/mod_asis.so
LoadModuleauth_basic_modulemodules/mod_auth_basic.so
#LoadModuleauth_digest_modulemodules/mod_auth_digest.so
#LoadModuleauthn_alias_modulemodules/mod_authn_alias.so
#LoadModuleauthn_anon_modulemodules/mod_authn_anon.so
#LoadModuleauthn_dbd_modulemodules/mod_authn_dbd.so
#LoadModuleauthn_dbm_modulemodules/mod_authn_dbm.so
LoadModuleauthn_default_modulemodules/mod_authn_default.so
LoadModuleauthn_file_modulemodules/mod_authn_file.so
#LoadModuleauthnz_ldap_modulemodules/mod_authnz_ldap.so
#LoadModuleauthz_dbm_modulemodules/mod_authz_dbm.so
LoadModuleauthz_default_modulemodules/mod_authz_default.so
LoadModuleauthz_groupfile_modulemodules/mod_authz_groupfile.so
LoadModuleauthz_host_modulemodules/mod_authz_host.so
#LoadModuleauthz_owner_modulemodules/mod_authz_owner.so
LoadModuleauthz_user_modulemodules/mod_authz_user.so
LoadModuleautoindex_modulemodules/mod_autoindex.so
#LoadModulecache_modulemodules/mod_cache.so
#LoadModulecern_meta_modulemodules/mod_cern_meta.so
LoadModulecgi_modulemodules/mod_cgi.so
#LoadModulecharset_lite_modulemodules/mod_charset_lite.so
#LoadModuledav_modulemodules/mod_dav.so
#LoadModuledav_fs_modulemodules/mod_dav_fs.so
#LoadModuledav_lock_modulemodules/mod_dav_lock.so
#LoadModuledbd_modulemodules/mod_dbd.so
#LoadModuledeflate_modulemodules/mod_deflate.so
LoadModuledir_modulemodules/mod_dir.so
#LoadModuledisk_cache_modulemodules/mod_disk_cache.so
#LoadModuledumpio_modulemodules/mod_dumpio.so
LoadModuleenv_modulemodules/mod_env.so
#LoadModuleexpires_modulemodules/mod_expires.so
#LoadModuleext_filter_modulemodules/mod_ext_filter.so
#LoadModulefile_cache_modulemodules/mod_file_cache.so
#LoadModulefilter_modulemodules/mod_filter.so
#LoadModuleheaders_modulemodules/mod_headers.so
#LoadModuleident_modulemodules/mod_ident.so
#LoadModuleimagemap_modulemodules/mod_imagemap.so
LoadModuleinclude_modulemodules/mod_include.so
#LoadModuleinfo_modulemodules/mod_info.so
LoadModuleisapi_modulemodules/mod_isapi.so
#LoadModuleldap_modulemodules/mod_ldap.so
#LoadModulelogio_modulemodules/mod_logio.so
LoadModulelog_config_modulemodules/mod_log_config.so
#LoadModulelog_forensic_modulemodules/mod_log_forensic.so
#LoadModulemem_cache_modulemodules/mod_mem_cache.so
LoadModulemime_modulemodules/mod_mime.so
#LoadModulemime_magic_modulemodules/mod_mime_magic.so
LoadModulenegotiation_modulemodules/mod_negotiation.so
#LoadModuleproxy_modulemodules/mod_proxy.so
#LoadModuleproxy_ajp_modulemodules/mod_proxy_ajp.so
#LoadModuleproxy_balancer_modulemodules/mod_proxy_balancer.so
#LoadModuleproxy_connect_modulemodules/mod_proxy_connect.so
#LoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so
#LoadModuleproxy_http_modulemodules/mod_proxy_http.so
#LoadModulerewrite_modulemodules/mod_rewrite.so
LoadModulesetenvif_modulemodules/mod_setenvif.so
#LoadModulespeling_modulemodules/mod_speling.so
#LoadModulessl_modulemodules/mod_ssl.so
#LoadModulestatus_modulemodules/mod_status.so
#LoadModulesubstitute_modulemodules/mod_substitute.so
#LoadModuleunique_id_modulemodules/mod_unique_id.so
#LoadModuleuserdir_modulemodules/mod_userdir.so
#LoadModuleusertrack_modulemodules/mod_usertrack.so
#LoadModuleversion_modulemodules/mod_version.so
#LoadModulevhost_alias_modulemodules/mod_vhost_alias.so
<IfModule!mpm_netware_module>
<IfModule!mpm_winnt_module>
#
#Ifyouwishhttpdtorunasadifferentuserorgroup,youmustrun
#httpdasrootinitiallyanditwillswitch.
如果你希望以不同的用户或用户组来运行httpd(进程),你必须用在第1次用root用户来运行httpd。
#
#User/Group:Thename(or#number)oftheuser/grouptorunhttpdas.
#Itisusuallygoodpracticetocreateadedicateduserandgroupfor
#runninghttpd,aswithmostsystemservices.
通常的做法都是创建一个特定的用户和用户组来运行httpd,大多数系统服务也都是这样的。也就是说,特定的某一用户启动特定的服务。
#
Userdaemon
Groupdaemon
</IfModule>
</IfModule>
#'Main'serverconfiguration
主要配置
#
#Thedirectivesinthissectionsetupthevaluesusedbythe'main'
#server,whichrespondstoanyrequeststhataren'thandledbya
#<VirtualHost>definition.Thesevaluesalsoprovidedefaultsfor
#any<VirtualHost>containersyoumaydefinelaterinthefile.
这段节选的参数值都将在<VirtualHost>环节未手动设置时被'main'服务启动生效。当然这里的所有参数你都可以在<VirtualHost>环节单独再定义设值。
#
#Allofthesedirectivesmayappearinside<VirtualHost>containers,
#inwhichcasethesedefaultsettingswillbeoverriddenforthe
#virtualhostbeingdefined.
这里的所有参数都有可能在后面的<VirtualHost>再次出现,结果就是这里的参数值失去作用,<VirtualHost>同名的参数值才是最终起作用的。
#
#ServerAdmin:Youraddress,whereproblemswiththeservershouldbe
#e-mailed.Thisaddressappearsonsomeserver-generatedpages,such
#aserrordocuments.e.g.[email protected]
ServerAdmin:填写你想到接收问题反馈的邮箱地址。当你的web出错时,可能访问者在某网页可以通过此邮箱与你取得联系。
#
ServerAdmin[email protected]
#
#ServerNamegivesthenameandportthattheserverusestoidentifyitself.
#Thiscanoftenbedeterminedautomatically,butwerecommendyouspecify
#itexplicitlytopreventproblemsduringstartup.
ServerName,给服务赋予固定的名称和端口来使用它。虽然这个参数值可以自动生成,并我们建议你最好根据实际情况设置一个正确的值,以防服务在启动时出现不明的错误。
#
#Ifyourhostdoesn'thavearegisteredDNSname,enteritsIPaddresshere.
如果你的主机还没有在DNS上注册被解板,请在这里填IP地址。
#
#ServerNamelina3000.gicp.net:8080
#
#DocumentRoot:Thedirectoryoutofwhichyouwillserveyour
#documents.Bydefault,allrequestsaretakenfromthisdirectory,but
#symboliclinksandaliasesmaybeusedtopointtootherlocations.
DocumentRoot:文档根目录。即用来作为提供网站显示的默认显示内容的本地目录。默认情况下,所有访问此主机的都将看到此目录内容,但有时候此目录里面的内容可能是一个链接到其它目录的快捷方式或别名。
#
DocumentRoot"D:/ProgramFiles/Apache2.2/htdocs"
#
#EachdirectorytowhichApachehasaccesscanbeconfiguredwithrespect
#towhichservicesandfeaturesareallowedand/ordisabledinthat
#directory(anditssubdirectories).
每一个通过Apache访问的目录都是事先被配置为允许httpd服务访问的,当然Apache服务
可以配置为允许/禁止对这个目录或子目录进行访问。
#
#First,weconfigurethe"default"tobeaveryrestrictivesetof
#features.
首先,我们配置目录访问的默认规则。
#
<Directory/>
OptionsFollowSymLinks
AllowOverrideNone
Orderdeny,allow
Denyfromall
</Directory>
以上配置是的“/”目录,也就是通过网址浏览的默认目录,“Options”表示“可操作”的参数,后面的值“FollowSymLinks”表示“允许浏览目录和文件”。表示当我们输入网址时网站的根目录会显示默认的网页文件(通常是“index”开头)或者是显示目录列表。
当然你可以在这里设置成如果没有“index”默认网页文件时也禁止显示目录列表。请另行查阅相关文档。
#
#Notethatfromthispointforwardyoumustspecificallyallow
#particularfeaturestobeenabled-soifsomething'snotworkingas
#youmightexpect,makesurethatyouhavespecificallyenabledit
#below.
从这一点出发,你必须明确定义各细节的访问规则。所以如果想正如你所打算的那样某些东西不能工作或打算失效,请确保以下的各规则参数被正确定义并生效。
#
#ThisshouldbechangedtowhateveryousetDocumentRootto.
以下你应该对事先设置的“DocumentRoot”参数路径访问规则进行必要的修改。
#
<Directory"D:/ProgramFiles/Apache2.2/htdocs">
#
#PossiblevaluesfortheOptionsdirectiveare"None","All",
#oranycombinationof:
#IndexesIncludesFollowSymLinksSymLinksifOwnerMatchExecCGIMultiViews
#
#Notethat"MultiViews"mustbenamed*explicitly*---"OptionsAll"
#doesn'tgiveittoyou.
#
#TheOptionsdirectiveisbothcomplicatedandimportant.Pleasesee
#http://httpd.apache.org/docs/2.2/mod/core.html#options
#formoreinformation.
#
OptionsIndexesFollowSymLinks
#
#AllowOverridecontrolswhatdirectivesmaybeplacedin.htaccessfiles.
#Itcanbe"All","None",oranycombinationofthekeywords:
#OptionsFileInfoAuthConfigLimit
#
AllowOverrideNone
#
#Controlswhocangetstufffromthisserver.
#
Orderallow,deny
Allowfromall
</Directory>
请查阅相关文档。
#
#DirectoryIndex:setsthefilethatApachewillserveifadirectory
#isrequested.
#
<IfModuledir_module>
DirectoryIndexindex.html
</IfModule>
模块标签作用。如果模块“dir_module”存在,则“DirectoryIndex”参数值为“index.html”。
模块“dir_module”在前面已经列出。
#
#Thefollowinglinesprevent.htaccessand.htpasswdfilesfrombeing
#viewedbyWebclients.
#
<FilesMatch"^.ht">
Orderallow,deny
Denyfromall
SatisfyAll
</FilesMatch>
对文件访问的规则。这里配置的是对后缀名为“.ht”网页文件的访问规则。至于“^.ht”这个正则表达式的含义,请查阅相关文档。
#
#ErrorLog:Thelocationoftheerrorlogfile.
#IfyoudonotspecifyanErrorLogdirectivewithina<VirtualHost>
#container,errormessagesrelatingtothatvirtualhostwillbe
#loggedhere.Ifyou*do*defineanerrorlogfilefora<VirtualHost>
#container,thathost'serrorswillbeloggedthereandnothere.
ErrogLog:存放日志文件的目录。同样的,如果你在<VirtualHost>节选里有重新设置,以<VirtualHost>里的同名参数值为最终生效结果。
#
ErrorLog"logs/error.log"
#
#LogLevel:Controlthenumberofmessagesloggedtotheerror_log.
#Possiblevaluesinclude:debug,info,notice,warn,error,crit,
#alert,emerg.
LogLever:错误级别。高于此级别的错误事件才定入到日志文件中。
可用的值包括:debug,info,notice,warn,error,cri,alert,emerg。
#
LogLevelwarn
<IfModulelog_config_module>
#
#Thefollowingdirectivesdefinesomeformatnicknamesforusewith
#aCustomLogdirective(seebelow).
#
LogFormat"%h%l%u%t"%r"%>s%b"%{Referer}i""%{User-Agent}i""combined
LogFormat"%h%l%u%t"%r"%>s%b"common
<IfModulelogio_module>
#Youneedtoenablemod_logio.ctouse%Iand%O
你必须安装并开启“mod_logio.c”模块才能使用下面的“%I”和“%O”
LogFormat"%h%l%u%t"%r"%>s%b"%{Referer}i""%{User-Agent}i"%I%O"
combinedio
</IfModule>
每个“LogFormat”格式化参数后分别跟“combined”、“common”、“combinedio”。
扩展知识:W3C标准对日志文件格式有相关规定。详情见:
http://www.w3.org/Daemon/User/Config/Logging.html#common-logfile-format
#
#Thelocationandformatoftheaccesslogfile(CommonLogfileFormat).
#Ifyoudonotdefineanyaccesslogfileswithina<VirtualHost>
#container,theywillbeloggedhere.Contrariwise,ifyou*do*
#defineper-<VirtualHost>accesslogfiles,transactionswillbe
#loggedthereinand*not*inthisfile.
记录访问的日志文件的本地存放位置和记录格式。
如果你在<VirtualHost>节选没有定义这个参数,则默认就存放在这里所设的参数值的 路径,否则……
#
CustomLog"logs/access.log"common
#
#Ifyoupreferalogfilewithaccess,agent,andrefererinformation
#(CombinedLogfileFormat)youcanusethefollowingdirective.
如果你想看到更多日志信息(如代理),可以采用下面这个形式。
#
#CustomLog"logs/access.log"combined
</IfModule>
<IfModulealias_module>
#
#Redirect:Allowsyoutotellclientsaboutdocumentsthatusedto
#existinyourserver'snamespace,butdonotanymore.Theclient
#willmakeanewrequestforthedocumentatitsnewlocation.
重定向:允许你对来自客户端的资源请求使用另外一个新的地址,而以后不再需要重复操作(即:永久性重定向)。请求的客户端将得到一个新的资源地址。
#Example:
#Redirectpermanent/foohttp://lina.szwpw.gicp.net/bar
例如:将“/foo”目录内容下重定向到url“http://lina.szwpw.gicp.net/bar”
#
#Alias:Mapswebpathsintofilesystempathsandisusedto
#accesscontentthatdoesnotliveundertheDocumentRoot.
#Example:
#Alias/webpath/full/filesystem/path
#
#Ifyouincludeatrailing/on/webpaththentheserverwill
#requireittobepresentintheURL.Youwillalsolikely
#needtoprovidea<Directory>sectiontoallowaccessto
#thefilesystempath.
#
#ScriptAlias:Thiscontrolswhichdirectoriescontainserverscripts.
#ScriptAliasesareessentiallythesameasAliases,exceptthat
#documentsinthetargetdirectoryaretreatedasapplicationsand
#runbytheserverwhenrequestedratherthanasdocumentssenttothe
#client.Thesamerulesabouttrailing"/"applytoScriptAlias
#directivesastoAlias.
#
ScriptAlias/cgi-bin/"D:/ProgramFiles/Apache2.2/cgi-bin/"
</IfModule>
<IfModulecgid_module>
#
#ScriptSock:Onthreadedservers,designatethepathtotheUNIX
#socketusedtocommunicatewiththeCGIdaemonofmod_cgid.
#
#Scriptsocklogs/cgisock
</IfModule>
上述模块不再逐一介绍。详情查阅Apache手册。
#
#"D:/ProgramFiles/Apache2.2/cgi-bin"shouldbechangedtowhateveryourScriptAliased
#CGIdirectoryexists,ifyouhavethatconfigured.
#
<Directory"D:/ProgramFiles/Apache2.2/cgi-bin">
AllowOverrideNone
OptionsNone
Orderallow,deny
Allowfromall
</Directory>
#
#DefaultType:thedefaultMIMEtypetheserverwilluseforadocument
#ifitcannototherwisedetermineone,suchasfromfilenameextensions.
#IfyourservercontainsmostlytextorHTMLdocuments,"text/plain"is
#agoodvalue.Ifmostofyourcontentisbinary,suchasapplications
#orimages,youmaywanttouse"application/octet-stream"insteadto
#keepbrowsersfromtryingtodisplaybinaryfilesasthoughtheyare
#text.
DefaultType:
#
DefaultTypetext/plain
<IfModulemime_module>
#
#TypesConfigpointstothefilecontainingthelistofmappingsfrom
#filenameextensiontoMIME-type.
#
TypesConfigconf/mime.types
#
#AddTypeallowsyoutoaddtooroverridetheMIMEconfiguration
#filespecifiedinTypesConfigforspecificfiletypes.
#
#AddTypeapplication/x-gzip.tgz
#
#AddEncodingallowsyoutohavecertainbrowsersuncompress
#informationonthefly.Note:Notallbrowserssupportthis.
#
#AddEncodingx-compress.Z
#AddEncodingx-gzip.gz.tgz
#
#IftheAddEncodingdirectivesabovearecommented-out,thenyou
#probablyshoulddefinethoseextensionstoindicatemediatypes:
#
AddTypeapplication/x-compress.Z
AddTypeapplication/x-gzip.gz.tgz
#
#AddHandlerallowsyoutomapcertainfileextensionsto"handlers":