文章阅读 饮水思源站 精华区

发信人: lone@sjtubbs (悟空), 信区: linux
标  题: Apache http server配置手册 
发信站: 饮水思源 (Tue Jan 21 09:13:16 1997)
转信站: sjtubbs

档案叙述:阿帕契 HTTP 伺服器参考手册
文件编号:LRG.LDTP.GUIDE.002
翻译日期:1996/09/01
翻译维护:asdchen@ms1.hinet.net                                  O
---------------------------------------------------------------X---
                                                                 O
                             APACHE

                         An HTTP Server

                        Reference Manual



  @ David Robinson and the Apache Group, 1995
  http://www.apache.org/

  保留所有权利。这个产品或文件受版权保护并且得在限制其用途,复制
  ,散播以及编辑的授权下散播。细节请参阅阿帕契授权书。

  版权所有者不对这份手册的内容作任何保证及建议而且特别声明不保证
  符合任何商业目的。

  版权所有者保留修订这份手册的权利且其内容得依时变更而不必通知任
  何人这些修订与变更。

  All rights reserved. This product or documentation protected by
copyright
  and  is  distributed   under  licences   restricting  its  use,
copying,
  distribution and decompilation. See the Apache licence for details.

  The copyright owner gives no warranties and makes no representations
about
  the contents  of  this manual  and  specifically  disclaims
warranties of
  merchantability of fitness for any purpose.

  The Copyright owner  reserves  the right  to  revise this manual and
make
  changes from time to time in its contents without notifying any
person of
  such revision or changes.


  TRADEMARKS


  Unix is a registered trademark of UNIX System Laboratories, Inc.
Sun and
  SunOs are trademarks of Sun Microsystems, Inc. Netscape is a
trademark of
  Netscape  Communications  Corporation.  All other product names
mentioned
  herein are trademarks of their respective owners.



  目录(Contents)        (略)



  序(Preface)

  这份手册是 1.0  版阿帕契伺服器(Apache HTTP server)的文件。这个
  伺服器是阿帕契计画的产品,此计画试图回应某些对积极发展一套可以
  免费取得之 HTTP 伺服器的关心。这个计画的目标是提供一个安全的,
  有效率的而且可以扩充功能的伺服器,此伺服器提供 HTTP 服务且符合
  目前的 HTTP 标准。

  这套阿帕契 httpd  伺服器的设计不但与 NCSA httpd 1.3 相容,并且
  提供常常有人要求的特色,像是


        。作为身分验认之用的 DBM  资料库
        。自定的(customised)错误与问题回应方式
        。多重的 directoryindex 指令
        。不限次数的 Alias  以及 Redirect 指令
        。以内容为基础的(Content-based) 文件协商(negotiation)
        。虚拟伺服器


  阿帕契授权书


  Copyright 1995 The Apache Group. All rights reserved.

  假若符合下列条件,无论是否经过修改,以原始程式及执行程式的形式
  散播与使用都是许可的:


  1.  散播原始程式码必须保留上述的版权告示,这份条件列表以及下列
      声明。

  2.  以执行程式码的形式散播必须在随附散播的文件以及/或是资讯中
      重现上述的版权告示,这份条件列表以及下列声明。

  3.  所有提及或使用这套软体特色的广告都必须显示下列讯息:
      `This product includes software developed by the Apache Group
for
       use in the Apache HTTP server project
(http://www.apache.org/).'

  4.  `Apache Server' 以及 `Apache Group' 这些名称没有随附前述的
      的许可不得用来为这套软体的衍生产品背书或鼓励采用。

  5.  以任何形式散播都必须保留下列讯息:
      `This product includes software developed by the Apache Group
for
       use in the Apache HTTP server project
(http://www.apache.org/).'

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following condictions
  are met:

  1. Redistribution of source code must retain the above copyright
     notice, this list of condictions and the following disclaimer.

  2. Redistribution in binary form must reproduce the above copyright
     notice, this list of condictions and the following disclaimer in
     the  documentation  and/or  other materials  provided  with  the
     distribution.

  3. All  advertising materials  mentioning features or use of this
     software must display the following acknowledge: `This product
     includes software developed by the Apache Group for use in the
     Apache HTTP server project (http://www.apache.org/).'

  4. The names `Apache Server' and `Apache Group' must not be used to
     endorse or  prompt products  derived from  this software without
     prior written permission.

  5. Redistribution of any form whatsoever must retain the following
     acknowledge: `This product  includes software  developed by the
     Apache  Group  for  use  in  the  Apache  HTTP  server  project
     (http://www.apache.org/).'



  THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
EXPRESSED OR
  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF
  MERCHANTABILITY AND FITNESS FOR A PARITICULAR PURPOSE ARE
DISCLAIMED.  IN NO
  EVENT SHALL  THE APACHE GROUP OR  ITS CONTRIBUTORS BE LIABLE FOR ANY
DIRECT,
  INDIRECT, INCIDETAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES
(INCLUDING,
  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS
OF USE,
  DATA OR PROFITS;  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY
  OF  LIABILITY,  WHERHER IN CONTRACT,  STRICT LIABILITY,  OR TORT
(INCLUDING
  NEGLIGENCE OR OTHER WISE)ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE,
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

  This software  consists of  voluntary contributions made by many
individuals
  on behalf of  the Apache Group  and was originally  based  on
public domain
  software written at the National  Center  for  Supercomputing
Applications,
  University of Illinois, Urbana-Champaign. For more information on
the apache
  Group and the Apache HTTP server project, please see
http://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'  这个指令稿:

                  % Configure
                  Using `Configuration' as config file
                  %

            这会产生新版的 Makefile 以及 modules.c  档案。如果你
            想要维护多个配置,那麽你可以这样,例如

                  % Configure -file Configuration.ai
                  Using alternate config file Configuration.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  的命令列上:

  -d serverroot
        把 ServerRoot 这个变数的起始值设定为 serverroot 。这可以
        藉由在配置档案里面的 ServerRoot 命令来加以改变。此预设为
        /usr/local/etc/httpd  。

  -f config
        启动时执行在 config 档案里面的指令。如果 config 没有以 /
        作为开始的话,那麽它会被当作相对於 ServerRoot 的路径。此
        预设值是 conf/httpd.conf  。

  -X
        以单一程序(single-process)模式执行,只用在内部除错;伺服
        程式不会脱离终端作业或是产生任何子程序。不要使用这个模式
        来提供正常的网页服务。

  -v
        列印 httpd  的版本,然後结束。

  -?
        列印 httpd  选项的一份列表,然後结束。


  2.3   配置档

  此伺服器将会读取三个配置指令档案。任何指令都可以出现在这些档案
  任何一个里面。这些档案的名称是相对於伺服器的根(server root) ;
  这是根是藉由 ServerRoot 指令,或是 -d 这个命令列旗标所指定的。
  依惯例这些档案是:

  conf/httpd.conf
        包含控制伺服程式运作的指令。档案名称可以配合 -f 命令列旗
        旗标加以改变。

  conf/srm.conf
        包含控制伺服器提供给客户端之文件规格的指令。档案名称可以
        配合 ResourceConfig 指令加以改变。

  conf/access.conf
        包含控制文件之存取的指令。档案名称可以配合  AccessConfig
        指令加以改变。


  无论如何,这些惯例并不需要完全遵奉。

  此伺服器也会读取一个包含 MIME 文件型态的档案;这个档案名称藉由
  TypesConfig 指令设定,而且有个 conf/mini.types  作为预设。


  2.4   记录档


  2.4.1   pid 档

  伺服程式启动时,它把父程序 httpd  的程序码(process id)存往这个
  log/httpd.pid 档案。这个档案名称可以配合 PidFile  指令加以改变
  。这个程序码由管理者用来重新启动或终止伺服程式;一个 HUP  信号
  会使伺服程式重新读取其配置档而一个 TERM 信号会使它终止。

  如果程序不正常地死掉(或被杀掉),那麽必须杀掉 httpd  子程序。


  2.4.2   错误记录

  伺服器会将错误讯息记录到一个记录档去,预设为 log/error_log  。
  档案名称可以藉由 ErrorLog 指令设定;可以为不同的虚拟主机设定不
  同的错误记录。


  2.4.3   传输记录

  伺服器一般会将每个请求记录到一个传输档,预设为 logs/access_log
  。档案名称可以藉由 TransferLog  指令设定;可以为不同的虚拟主机
  设定不同的传输记录。


  第三章

  阿帕契核心部份(core)的特色

  这些配置参数控制核心部份的阿帕契特色,而且是固定可以使用的。


  3.1   AccessConfig 指令

  语法: AccessConfig 档案名称
  预设: AccessConfig conf/access.conf
  用於: server config, virtual host
  状态: 核心

  此伺服器读取 ResourceConfig 档案之後将会继续读取这个档案以取得
  更多指令。档案名称系相对於 ServerRoot 路径。此特色可以使用如下
  的方式关闭:

        AccessConfig /dev/null

  原本这个档案只包含   节区;事实上它现在可以包含任何
  可以用於伺服器配置的指令。


  3.2   AccessFileName 指令

  语法: AccessFileName 档案名称
  预设: AccessFileName .htaccess
  用於: server config, virtual host
  状态: 核心

  回传文件给客户端的时候,如果目录的存取控制档有启动,伺服器会在
  到达这份文件的路径中的每个目录里以此名称搜寻存取控制档。例如:

        AccessFileName .acl

  在回传 /usr/local/web/index.html  这份文件前,此伺服器将会读取
  /.acl, /usr/.acl, /usr/local/.acl 以及 /usr/local/web/.acl  以
  取得指令,除非以如下的方式关闭它们:

        
        AllowOverride None
        


  3.3   AllowOverride 指令

  语法: AllowOverride override override ...
  预设: AllowOverride All
  用於: directory
  状态: 核心

  伺服器找到 AccessFileName 指定的档案时会需要知道该档案所宣告的
  哪些指令可以改变稍早的存取资讯。

  Override  可以设为 None 在此情况下伺服器将不会读取该档,而设为
  All 的话伺服器将会允许所有的指令,或是下列其中之一:


  AuthConfig
        允许验认指令的使用(AuthDBMGroupFile,  AuthDBMUserFile,
        AuthGroupFile,  AuthName,  AuthType,  AuthUserFile and
        require)

  FileInfo
        允许控制文件型态之指令的使用(AddEncoding,  AddLanguage,
        AddType, DefaultType and LanguagePriority)

  Indexes
        允许控制目录索引之指令的使用(AddDescription,   AddIcon,
        AddIconByEncoding,   AddIconByType,   DefaultIcon,
        DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore,
        IndexOptions and ReadmeName)

  Limit
        允许控制存取主机之指令的使用(allow, deny and order)

  Options
        允许控制特定目录特色之指令的使用(Options and XbitHack)


  3.4   AuthName 指令

  语法: AuthName 验认领域
  用於: directory, .htaccess
  需求: AuthConfig
  状态: 核心

  这个指令为某个目录设定验认区域的名称。这个区域会送给客户端所以
  使用者知道要传送的使用者名称以及密码。它必须藉由 AuthType 以及
  require 指令来完成,而且要有像 AuthUserFile 以及 AuthGroupFile
  这些指令配合运作。


  3.5   AuthType 指令

  语法: AuthType 型态
  用於: directory, .htaccess
  需求: AuthConfig
  状态: 核心

  这个指令为某个目录选择使用这验认型态。目前只有 Basic  实作出来
  。它必须藉由 AuthName 以及 require  指令来完成,而且还要有像是
  AuthUserFile  以及 AuthGroupFile  这些指令配合运作。


  3.6   BindAddress 指令

  语法: BindAddress 伺服器位址
  预设: BindAddress *
  用於: server config
  状态: 核心

  一台 Unix 的 http 伺服器可以监听到该伺服机器每个 IP 位址的连线
  或者只注意该伺服机器的一个位址。伺服器位址可以是:

        。*
        。一个 IP 位址
        。一个完整的网际网路领域名称

  如果此值是 *  的话,那麽该伺服器将会监听每一个 IP 位址的连线,
  否则它将只监听指定的 IP 位址。

  这个选项可以用来作为另一种支援虚拟主机的方式取代 
  节段。


  3.7   DefaultType 指令

  语法: DefaultType mime-型态
  预设: DefaultType text/html
  用於: server config, virtual host, directory, .htacess
  需求: FileInfo
  状态: 核心

  有些时候伺服器会被要求提供某份文件,此文件不能藉由其 MIME 型态
  对映来决定型态。

  伺服器必须知会客户端文件所包含的型态(content-type),所以不知道
  型态的时候它便使用 DefaultType  。例如:

        DefaultType image/gif

  对於包含许多没有 .gif 副档名的 gif  图形目录是合适的。


  3.8    指令

  语法:  ... 
  用於: server config, virtual host
  状态: 核心

   以及  用来把一组指令包装起来,这些指令
  将只应用到所指明的目录及其子目录上。任何可以用於 directory  的
  指令都可以使用。Directory 是到某目录的完整路径,或是替代字元串
  (widecard string) 。在替代字元串中 `?'  能够符合任何单一字元,
  而 `*'  能够符合任何顺序的一些字元。例如:

        
        Option Indexes FollowSymLinks
        

  如果有多个 directory  节区能符合包含该文件的目录(或其父目录)
  ,那麽分布在 .htaccess  档案里的指令是以最短先符合的顺序加以应
  用的,例如:

        
        AllowOverride None
        

        
        AllowOverride FileInfo
        

  存取 /home/web/dir/doc.html 这份文件的步骤是:

        。应用 AllowOverride None 指令(关掉 .htaccess  档案)。
        。应用 AllowOverride FileInfo 指令(目录 /home/web  )。
        。应用任何在 /home/web/.htaccess 里面的 FileInfo  指令。

  这个 directory  节段典型是用在 access.conf  档案里,但它们可以
  出现在任何配置档里。 指令不能巢状使用,而且不能出现
  在   节段里。


  3.9   DocumentRoot 指令

  语法: DocumentRoot 目录名称
  预设: DocumentRoot /usr/local/etc/httpd/htdocs
  用於: server config, virtual host
  状态: 核心

  这个指令设定 httpd  从这个目录提供档案服务。除非符合像是 Alias
  这样的指令,伺服器把所要求的 URL  附加到文件根 (document root)
  来组合到达文件的路径。例如:

        DocumentRoot /usr/web

  如此对於 http://www.my.host.com/index.html  档案的存取便会参照
  到 /usr/web/index.html  。


  3.10  ErrorDocument 指令

  语法: ErrorDocument 错误代码 文件
  用於: server config, virtual host
  状态: 核心

  有问题或错误发生的状况下,可以配置阿帕契做四种反应

        1.  如同 NCSA httpd 1.3 的反应
        2.  输出自定的(customized)讯息
        3.  重导到某个本地的 URL  以处理该问题/错误
        4.  重导到某个外部的 URL  以处理该问题/错误

  2-4 是使用 ErrorDocument  来配置,其後跟随 HTTP 反应码以及讯息
  或是 URL  。

        ErrorDocument 500 /cgi-bin/tester
        ErrorDocument 404 /cgi-bin/bad_urls.pl
        ErrorDocument 401 http://www.foo.bar/subscription_info.html
        ErrorDocument 403 "Sorry can't allow you acess today

  参阅: 自定回应的文件。


  3.11  ErrorLog 指令

  语法: ErrorLog 档案名称
  预设: ErrorLog logs/error_log
  用於: server config, virtual host
  状态: 核心

  这个错误记录指令设定档案名称,伺服器将会把其遭遇的每个错误记录
  到这个档案去。如果档案名称不是以 /  开始的话那麽它就会被假设为
  相对於 ServerRoot 的路径。例如:

        ErrorLog /dev/null

  这会有效地关掉错误记录。


  3.12  Group 指令

  语法: Group unix-群组
  预设: Group #-1
  用於: server config
  状态: 核心

  这个 Group  指令设定伺服器回答要求时所处的群组。为了要能够使用
  这个指令,必须以 root 身分起始执行独立的伺服器。 Unix-群组可以
  是这些其中之一:

  群组的名称
        藉由名称参照所给的群组。

  # 跟随著群组号码
        藉由号码参照某个群组。

  建议你特别设立一个群组来执行这个伺服器。某些管理者使用  nobody
  这个使用者,但是这并非永远可行或合适的。

  注意: 如果你以非 root 使用者的身分启动这个伺服器,它将无法切换
  到指定的群组,并且取而代之的是它将会继续以原来的使用者所属群组
  来执行。

  安全: 参阅 User 指令对安全情况的讨论。


  3.13  IdentityCheck 指令

  语法: IdentifyCheck 布林值
  预设: IdentifyCheck off
  用於: server config
  状态: 核心

  这个指令为每次的连线起始 RFC931-相容的远端使用者名称记录,其中
  客户端需得执行 identd 或者是类似的东西。这项资讯记录在存取记录
  (access log)里。布林值是 on 或者 off  。

  除非是作为基本的使用量追踪,这项资讯无论如何不能真的信赖。


  3.14   指令

  语法:  ... 
  用於: 任何地方
  状态: 核心

   以及  用来把一组存取控制指令包装起来,这些指令
  将只应用到指定的存取方式上,其中的方式是指任何有效的 HTTP 方式
  (method)。除了   或是   之外的任何指令都可以
  使用;大部分都不会被   影响。例如:

        
        require valid-user
        

  如果有个存取控制指令出现在   指令之外,那麽它会被应用到
  所有的存取方式上。


  3.15  MaxClient 指令

  语法: MaxClients 数字
  预设: MaxClients 150
  用於: server config
  状态: 核心

  这个 MaxClients 指令设定所能支援的同时存取要求数目;不会建立比
  此值还多的子程序。


  3.16  MaxRequestPerChild 指令

  语法: MaxRequestsPerChild 数字
  预设: MaxRequestsPerChild 0
  用於: server config
  状态: 核心

  MaxRequestsPerChild 这个指令设定一个独立的子伺服程序将能处理的
  请求数量。在处理 MaxRequestsPerChild  个请求之後,子程序将会被
  终止。如果 MaxRequestsPerChild  为 0  的话,那麽该程序永远不会
  被终止。

  MaxRequestsPerChild 设为非 0  的值做为限制有两个好处:

        。藉由记忆体使用量限制程序使用的记忆体数量;
        。藉由赋予程序有限的存留时间,可以在伺服器负载降低时协助
          减少程序的数目。


  3.17  MaxSpareServers 指令

  语法: MaxSpareServers 数字
  预设: MaxSpareServers 10
  用於: server config
  状态: 核心

  MaxSpareServers 这个指令设定最大闲置(idle)子伺服程序数量。闲置
  子伺服程序是目前没有处理要求的程序。如果有多於 MaxSpareServers
  的暂停程序,那麽父程序会终止超过此数量的子程序。

  只有在非常忙碌的站台上才有调整这个选项的需要。把这个参数设为非
  常大的数目通常总是个不好的主意。

  参阅 MinSpareServers  以及 StartServers 。


  3.18  MinSpareServers 指令

  语法: MinSpareServers 数字
  预设: MinSpareServers 5
  用於: server config
  状态: 核心

  MinSpareServers 这个指令设定最大闲置(idle)子伺服程序数量。闲置
  子伺服程序是目前没有处理要求的程序。如果有属於 MinSpareServers
  的暂停程序,那麽父程序会以最高每秒一个的速率建立新的子程序。

  只有在非常忙碌的站台上才有调整这个选项的需要。把这个参数设为非
  常大的数目通常总是个不好的主意。

  参阅 MaxSpareServers  以及 StartServers 。


  3.19  Options 指令

  语法: Option 选项 选项 ...
  用於: server config, virtual host, directory, .htaccess
  需求: Options
  状态: 核心

  Options 这个指令控制某个特定目录所能使用的伺服器特色。选项可以
  设为 NONE 在此情况下没有额外的特色会起动,或者可以是下列的一个
  或几个:

  All
        除了 MultiViews 以外的所有选项。

  ExecCGI
        CGI 指令稿的执行权限。

  FollowSymLinks
        伺服器将会跟照目录里的符号链结。

  IncludesNOEXEC
        伺服端含入(Server-side include) 的权限。

  Indexes
        如果有个 URL  对映到所要求的目录,而且目录里面并没有目录
        索引(DirectoryIndex, e.g. index.html) 存在,那麽伺服器将
        会传回这个目录格式化後的列表。

  MultiViews
        允许 MultiViews 内容协商。

  SymLinksIfOwnerMatch
        只有在目标档案或目录与符号链结的拥有者相同时伺服器才会去
        跟照符号链结。

  如果多个选项可以应用到某个目录上,那麽最底下的指定会完成;选项
  不会合并。例如:


        
        Options Indexes FollowSymLinks
        
        
        Option Includes
        


  这样只有 Includes 会设定到 /web/docs/spec 目录上。


  3.20  PidFile 指令

  语法: PidFile 档案名称
  预设: PidFile logs/httpd.pid
  用於: server config
  状态: 核心

  PidFile 这个指令设定伺服器记录伺服程式的程序号码所使用的档案。
  如果档案名称不是以 /  开始那麽它会被假定是相对於 ServerRoot 的
  目录。这个 PidFile  只使用在独立(standalone)模式。

  能够送个信号给伺服器通常会是有用的,可以关闭再重新打开错误记录
  与传输记录,以及重新读取配置档。这是藉由传送  SIGHUP (kill -1)
  信号到列在 PidFile  里的程序号码来达成的。


  3.21  Port 指令

  语法: Port 数字
  预设: Port 80
  用於: server config
  状态: 核心

  这个 Port 指令设定伺服器监听的网路埠号。数字是 0  到 65535  的
  一个数目;某些埠号(特别是低於 1024 的)保留给特殊的协定。参阅
  /etc/services 里定义的一些埠的列表;标准 http 协定使用 80 埠。

  Port 80 是 Unix's 的一个特别埠。所有低於 1024 的埠号都是保留给
  系统使用的,例如,一般使用者(non-root)不能使用它们;取而代之的
  是他们可以使用较高的埠号。

  要使用 80 埠你必须以 root 帐号启动伺服器。在连接到该埠後,接受
  请求之前,阿帕契将会切换为藉由 User 指令所设定权限较低的使用者
  身分。

  如果你不能使用 80 埠,选择任何其它没有使用到的埠。非 root 使用
  者必须选择高於 1023 的埠号,像是 8000 。

  安全: 如果你是以 root 启动伺服器,确定不要把 User 设为 root 。
  如果你以 root 身分处理连线的话,你的站台可能会暴露在攻击下。


  3.22  require 指令

  语法: require 项目名称 项目 项目 ...
  用於: directory, .htaccess
  需求: AuthConfig
  状态: 核心

  这个指令选择经过验认可以存取目录的使用者。允许使用的语法是:

        。require user 使用者辨识码 使用者辨识码 ...
          只有注明的使用者能存取该目录。

        。require group 群组名称 群组名称 ...
          只有在注明群组里的使用者能存取该目录。

        。require valid-user
          所有合法的使用者都可以存取该目录。

  如果 require  出现在   节段里,那麽它会限制所注明的存取
  方式,否则它会限制所有的存取方式。例如:

        AuthType Basic
        AuthName somedomain
        AuthUserFile /web/users
        AuthGroupFile /web/group
        Limit 
        require group admin
        

  Require 必须藉由 AuthName 以及 AuthType 这些指令,以及配合像是
  AuthUserFile  以及 AuthGroupFile  指令(用来定义使用者与群组)
  以便正确运作。


  3.23  ResourceConfig 指令

  语法: ResourceConfig 档案名称
  预设: ResourceConfig conf/srm.conf
  用於: server config, virtual host
  状态: 核心

  此伺服器读取 httpd.conf 档案之後将会继续读取这个档案以取得更多
  指令。档案名称系相对於 ServerRoot 路径。此特色可以使用如下的方
  式关闭:

        ResourceConfig /dev/null

  原本这个档案包含大部分指令,除了伺服器配置及   节区
  以外;事实上它现在可以包含任何可以用於伺服器配置的指令。


  3.24  ServerAdmin 指令

  语法: ServerAdmin 电子邮件地址
  用於: server config, virtual host
  状态: 核心

  ServerAdmin 设定电子邮件地址,伺服器回传任何错误讯息给客户端时
  会包含这个地址。

  设定一个像这样的地址可能会有用,例如

        ServerAdmin www-admin@foo.bar.com

  因为使用者并不会永远知道他们是跟在哪台伺服器打交道!


  3.25  ServerName 指令

  语法: ServerName 完整的领域名称
  用於: server config, virtual host
  状态: 核心

  这个 ServerName 指令设定伺服器的主机名称;这只有在建立重导 URL
  的时候使用。如果没有指定它,那麽伺服器会试图从其 IP 位址来决定
  ;然而这个方法可能不能信赖,或者无法回传适当的主机名称。例如:

        ServerName www.wibble.com

  如果正式(canonical) 名称是 monster.wibble.com 它还能够使用上述
  的名称。


  3.26  ServerRoot 指令

  语法: ServerRoot 目录名称
  预设: ServerRoot /usr/local/etc/httpd
  用於: server config
  状态: 核心

  这个 ServerRoot 指令设定伺服器所在的目录。它典型会包含有子目录
  conf/ 以及 logs/  。其它配置档的相对路径是相对於这个路径。


  3.27  ServerType 指令

  语法: ServerType 型态
  预设: ServerType standalone
  用於: server config
  状态: 核心

  这个 ServerType 指令设定系统如何执行这个伺服器。型态可以是其中
  之一:

  inetd
        伺服器将由系统程序 inetd  执行;启动伺服器使用的命令加在
        /etc/inetd.conf 档案里。

  standalone
        伺服器将会作为伺服程式(daemon)执行;启动伺服器使用的命令
        加在系统启动指令稿里(/etc/rc.local or /etc/rc.d/...)。

  inetd 在这两个选项里是较少使用的。因为接收到每个 http 连线就会
  重头开始执行一份新的伺服器拷贝;连线结束後,这支程式就会结束。
  每次连线要付出的代价很高,但是因为安全上的理由,某些管理者喜欢
  这个选项。

  standalone  是 ServerType 使用最普遍的设定,因为它更为有效率。
  伺服器启动一次,而且服务所有的连线。如果你想要执行阿帕契来服务
  一个忙碌的站台, standalone 大概将会是你唯一的选择。

  安全: 如果你对安全性有偏执,以 inetd  模式来执行它。两种方式都
  不能绝对确保安全性,但是大部分人使用 standalone 用得很高兴时,
  inetd 大概比较不会遭到攻击。


  3.28  StartServers 指令

  语法: StartServers 数字
  预设: StartServers 5
  用於: server config
  状态: 核心

  这个 StartServers 指令设定启动时建立的子伺服程序数量。因为程序
  的数量是依据负载动态控制的,通常没有什麽理由得要调整这个参数。

  参阅 MinSpareServers 以及 MaxSpareServers 。


  3.29  TimeOut 指令

  语法: TimeOut 数字
  预设: TimeOut 1200
  用於: server config
  状态: 核心

  TimeOut 这个指令设定伺服器接收一个请求以及完成一个请求最长的等
  待时间,以秒为单位。所以如果它花费比 TimeOut  更多秒来让客户端
  传送请求或接收回应,伺服器将会中断该连线。因此 TimeOut  限制一
  次可以传输的最大资料量;对於大档案,以及慢速网路传输时间可能会
  很久。


  3.30  User 指令

  语法: User 使用者辨识码
  预设: User #-1
  用於: server config
  状态: 核心

  User  这个指令设定伺服器用来回答请求的使用者辨识码。为了要能够
  使用这个指令,必须以 root 身分起始执行独立的伺服器。Unix使用者
  辨识码可以是其中之一:

  一个使用者名称
        藉由名称参照给定的使用者。

  # 跟随著使用者编号
        藉由使用这个编号参照他们。

  这个使用者应该不能有存取外界所不能看到的档案的权限,而且与此类
  似,这个使用者应该不能执行对 httpd  要求而言没有意义的程式码。
  建议你特别为执行这个伺服器设立新的使用者以及群组。某些管理者使
  用 nobody 但是这并非永远可行或合适的。

  注意: 如果你以非 root 使用者的身分启动这个伺服器,它将无法切换
  到权限较低的使用者,并且取而代之的是它将会继续以原使用者身份来
  执行。如果你真的是以 root 启动这个伺服器,那麽这个父程序一般仍
  然以 root 身分在执行。

  安全: 不要把 User(or Group) 设为 root 除非你确实知道你在做什麽
  以及会有怎麽样的危险。


  3.31   指令

  语法: ...
  用於: 伺服器配置
  位於: 核心部份

   以及  用来把一组指令包装起来,这些
  指令将只会应用到某个特定的虚拟主机上。任何可用於虚拟主机的指令
  都可以使用。当伺服器接收到某个特定主机上的文件请求的时候,它会
  使用包装在   节段里的配置指令。位址可以是

        。虚拟主机的 IP 位址
        。虚拟主机的 IP 位址的完整领域名称。

  范例:

        
        ServerAdmin webmaster@host.foo.com
        DocumentRoot /www/docs/host.foo.com
        ServerName host.foo.com
        ErrorLog logs/host.foo.com-error_log
        TransferLog logs/host.foo.com-access_log
        

  目前,每段 VirtualHost  必须符合伺服器不同的 IP 位址,所以伺服
  机器必须配置成能够接收多个位址的 IP 封包。如果该机器并没有多个
  网路界面,那麽这可以配合 ifconfig alias 指令来完成(如果你的作
  业系统支援这个功能),或是配合像是 VIF(for SunOS(TM)4.1.x)一类
  的核心修补档。


  第四章

  阿帕契标准模组


  4.1   mod_access  模组

  这个模组包含在 mod_access.c 档案里,而且依预设会编译进去。它提
  供以客户端主机名称或 IP 位址为基础的存取控制。


  4.1.1   allow

  语法: allow from 主机 主机 ...
  用於: directory, .htaccess
  需求: Limit
  状态: 基础
  模组: mod_access

  allow 这个指令影响能够存取某特定目录的主机;典型是用在 
  节区里。主机可以是下列之一:

  all
        允许所有的主机存取。

  (部份)领域名称
        允许名称为此字串或以此字串结束的主机存取。

  完整的 IP 位址
        允许该 IP 位址的主机存取。

  部份的 IP 位址
        某个 IP 位址第一到第三个位元组,作为子网路限制之用。

  范例:

        allow from .ncsa.uiuc.edu

  允许在指定领域里的所有主机进行存取。

  注意这比较的是整个的内容;所以 bar.edu  不会符合 foobar.edu 。

  参阅 deny 以及 order  指令。


  4.1.2   deny

  语法: deny from 主机 主机 ...
  用於: directory, .htaccess
  需求: Limit
  状态: 基础
  模组: mod_access

  deny  这个指令影响能够存取某特定目录的主机;典型是用在 
  节区里。主机可以是下列之一:

  all
        拒绝所有的主机存取

  (部份)的领域名称
        拒绝名称为此字串或以此字串结束的主机存取。

  完整的 IP 位址
        拒绝该 IP 位址的主机存取。

  部份的 IP 位址
        某个 IP 位址第一到第三个位元组,作为子网路限制之用。

  范例:

        deny from 16

  拒绝在指定网路里的所有主机进行存取。

  注意这比较的是整个的内容;所以 bar.edu  不会符合 foobar.edu 。

  参阅 allow  以及 order  指令。


  4.1.3   order

  语法: order 次序
  预设: order deny, allow
  用於: directory, .htaccess
  需求: Limit
  状态: 基础
  模组: mod_access

  order 这个指令控制评估 allow  以及 deny 指令的次序。次序可以是
  其中之一:

  deny,allow
        在 allow  指令之前评估 deny 指令

  allow,deny
        在 deny 指令之前评估 allow  指令

  mutual-failue
        只有那些出现在 allow  列表里而且没有出现在 deny 列表里的
        主机可以进行存取。

  范例:

        order deny,allow deny from all allow from .ncsa.uiuc.edu

  允许在 ncsa.uiuc.edu  这个领域里的主机进行存取;拒绝所有其它的
  主机存取。


  4.2 mod_alias 模组

  这个 mod_alias  模组包含在 mod_alias.c  档案里,而且依预设会编
  译进去。它提供的功能是对映主机档案系统的不同部份到文件树去,及
  URL 转向。


  4.2.1   Alias

  语法: Alias url-路径 目录-档案名称
  用於: server config, virtual host
  状态: 基础
  模组: mod_alias

  Alias 这个指令使文件可以存放在 DocumentRoot 之外的本地档案系统
  里。以 url-路径 开始的 URLs 将会被对映到以 目录-档案名称  开始
  的本地档案去。例如:

        Alais /image /ftp/pub/image

  对於 http://myserver/images/foo.gif 的这个请求会使得伺服器回传
  档案 /ftp/pub/image/foo.gif 。

  参阅 ScriptAlias  指令。


  4.2.2  Redirect

  语法: Redirect url-路径 url
  用於: server config, virtual host
  状态: 基础
  模组: mod_alias

  Redirect  这个指令对映旧的 URL  到新的去。新的 URLs 会被回传给
  客户端以便配合新的位址再次尝试撷取。Url-路径 (%-decoded)路径;
  任何以这个路径作为开始的文件请求都将回传一个错误并重导到以 url
  作为开始的新(%-encoded) url 去。例如:

        Redirect /service http://foo2.bar.com/service

  如果客户端请求 http://myserver/service/foo.txt  则会被告知应该
  撷取 http://foo2.bar.com/service/foo.txt  来取代。

  注意: 无论配置档里的次序如何,Redirect  指令优先於 Alias  以及
  ScriptAlias 指令。


  4.2.3   ScriptAlias

  语法: ScriptAlias url-路径 目录-档案名称
  用於: server config, virtual host
  状态: 基础
  模组: mod_alias

  ScriptAlias 这个指令除了还另外把目标目录标记为包含 CGI  指令稿
  以外其功能与 Alias  指令相同,以 url-路径 作为开始的 URLs 将会
  被对映到以 目录-档案名称  作为开始的指令稿去。例如:

        ScriptAlias /cgi-bin/ /web/cgi-bin/

  对於 http://myserver/images/foo 的这个请求会使伺服器去执行指令
  稿 /web/cgi-bin/foo 。


  4.3   mod_asis 模组

  这个模组包含在 mod_asis.c 档案里,而且依预设会编译进去。它是为
  .asis 档案而提供的。任何 mime 型态为 httpd/send-as-is 的文件都
  将由这个模组处理。


  4.3.1   目的

  允许定义档案的型态,如此阿帕契可以不加 HTTP 标头(headers) 传送
  它们。

  这可以用来从伺服器传送任何型态的资料,包括重导(redirects) 以及
  其它特殊的 HTTP 回应,而不需要 cgi-script 或是 nph script 。


  4.3.2   用法

  在伺服器配置档里,定义一个称为 httpd/send-as-is 的 mime 型态,
  例如

        AddType httpd/send-as-is asia

  这定义 .asis  副档名是新的 httpd/send-as-is  mime 型态。任何副
  档名是 .asis  的档案内容由阿帕契送出给客户端时几乎不会有任何的
  改变。客户端将需要 HTTP 标头来联系,所以别忘记它们。 A Status:
  仍然需要标头;此资料应该是 3位数字的 HTTP 回应码,跟随一段文字
  讯息。

  这里有个范例档,其内容是告诉客户端有个档案被重导送出。

        Status: 302 Now where did I leave that URL
        Location: http://xyz.abc.com/foo/bar.html
        content-type: text/html

        
        
Fred's exceptionally wonderful page has moved to Joe'ssite
注意: 伺服器一定会在送给客户端的资料里加上 Date: 以及 Server:
标头,所以不应该包含在这个档案里。伺服器不会加上 Last-Modified
标头,所以应该要才对。 4.4 mod_auth 模组 这个模组包含在 mod_auth.c
档案里,而且依预设会编译进来。它提供 的功能是使用文字档案来执行使用者验认。
4.4.1 AuthGroupFile 语法: AuthGroupFile 档案名称 用於: directory, .htaccess 需求: AuthConfig
状态: 基础 模组: mod_auth AuthGroupFile
这个指令设定一个文字档的名称,这个文字档包含用来
执行使用者验认的使用者群组列表。档案名称是群组档案的绝对路径。
这个群组档案的每一行包括一个群组名称,跟随一个冒号,其後是藉由
空白隔开的使用者名称。例如: mygroup: bob joe anne
注意搜寻很大的群组档案是很没有效率的;应该用 AuthDBMGroupFile 来取代它。 安全:
确定这个 AuthGroupFile 储放在伺服器的文件树之外;不要把
它放在它保护的目录里。否则,客户端将能够下载这个 AuthGrpupFile 档案。 参阅
AuthName, AuthType 以及 AuthUserFile 。 4.4.2 AuthUserFile 语法: AuthUserFile 档案名称
用於: directory, .htaccess 需求: AuthConfig 状态: 基础 模组: mod_auth 这个 AuthUserFile
指令设定一个文字档的名称,这个文字档包含用来
执行使用者验认的使用者以及密码列表。档案名称是到群组档案的绝对 路径。
这个使用者档案的每一行包括一个使用者名称,跟随一个冒号,其後是 藉由 crypt()
加密过的密码。多个相同使用者的情况没有定义。
注意搜寻很大的使用者档案是很没有效率的;应该用 AuthDBMUserFile 来取代它。
安全: 确定这个 AuthUserFile 储放在伺服器的文件树之外;不要把它
放在它所保护的目录里。否则,客户端将能够下载这个 AuthUserFile 档案。 参阅
AuthName, AuthType 以及 AuthGroupFile 。 4.5 mod_cgi 模组 这个模组包含在 mod_cgi.c
档案里,而且依预设会编译进来。它提供 CGI 指令稿的执行能力。任何 mime 型态为
application/x-httpd-cgi 的档案都将由这个模组处理。 4.5.1 摘要 任何拥有
application/x-httpd-cgi 之 mime 型态的档案都会被当作 CGI
指令稿,而且由伺服器执行,并把输出传回客户端。档案可以藉由 使用 AddType
指令所定义的副档名,或是藉由放在 ScriptAlias 所 设定的目录来成为这种型态。
当伺服器启动一个 CGI 指令稿时,它将加上一个称为 DOCUMENT_ROOT
的环境变数。这个变数将会包含 DocumentRoot 配置的内容。 4.5.2 CGI 环境变数
这个伺服器将会设立定义在 CGI 规格中的 CGI 环境变数,配合下列 的但书:
REMOTE_HOST 这只有在伺服器没有配合 MINIMAL_DNS 编译的时候才会设定。
REMOTE_IDENT 这只有在 IdentityCheck 设为 on 的时候才会设定。 REMOTE_USER
这只有在 CGI 指令稿需要验认的时候才会设定。 4.6 mod_dir 模组 这个模组包含在
mod_dir.c 档案里,而且依预设会编译进来。它提供 作为目录索引之用。 4.6.1 摘要
这个模组控制目录索引。目录的索引可以有两种来源:
。一个由使用者所撰写的档案,典型是称为 index.html 的档案 。DrectoryIndex
指令设定这个档案的名称。
。另一种是由伺服器所产生的列表。其它的指令控制这个列表的 格式。AddIcon,
AddIconByEncoding and AddIconByType 都
是用来设定显示不同档案型态所使用的图示列表;对於每种列
出的档案型态,显示列出的第一个符合的图示。 4.6.2 AddDescription 语法:
AddDescription 字串 档案 档案 ... 用於: server config, virtual host, directory, .htaccess 需求:
Indexes 状态: 基础 模组: mod_dir
这是设定某档案所要显示的描述,供象徵索引(FancyIndexing) 使用。
档案是指所要描述之档案的副档名,部份档案名称,替代字元表示式或
完整档案名称。 字串以双引号(") 括起。例如: AddDescription "The planet Mars"
/web/pics/mars.gif 4.6.3 AddIcon 语法: AddIcon 图示 名称 名称 ... 用於: server config, virtual
host, directory, .htaccess 需求: Indexes 状态: 基础 模组: mod_dir
这设定显示在档案名称之後的图示供作象徵索引之用。图示可以是某个 图示的相对
URL 或是给非图形化浏览器使用的文字标签。 对於目录可以使用 ^^DIRECTORY^^
这个名称,^^BLANKICON^^ 可以用
在空白行(使列表的格式正确),名称也可以是扩充档名,替代字元表
示式,部份或完整的档案名称。例如: AddIcon (IMG,/icons/image.xbm) .gif .jpg .xbm
AddIcon /icons/dir.xbm ^^DIRECTORY^^ AddIcon /icons/backup.xbm *~ 可能的话,使用
AddIconByType 应该比 AddIcon 好。 4.6.4 AddIconByEncoding 语法: AddIconByEncoding
icon mime-encoding mime-encoding ... 用於: server config, virtual host, directory, .htaccess 需求:
Indexes 状态: 基础 模组: mod_dir 这设定显示在有 mime-encoding
的档案名称之後的图示供作象徵索引 之用。图示可以是某个图示的相对 URL
或是给非图形化浏览器使用的 文字标签。 Mime-encoding
是个符合要求之编码内容的替代字元表示式。例如: AddIconByEncoding
/icons/compress.xxbm x-compress 4.6.5 AddIconByType 语法: AddIconByType icon mime-type
mime-type ... 用於: server config, virtual host, directory, .htaccess 需求: Indexes 状态: 基础
模组: mod_dir 这设定显示在 mime-type 的档案名称之後的图示供作象徵索引之用。
图示可以是某个图示的相对 URL 或是给非图形化浏览器使用的文字标 签。
Mime-encoding 是个符合要求之 mime 型态的替代字元表示式。例如: AddIconByType
(IMG, /icons/image.xbm) image/* 4.6.6 DefaultIcon 语法: DefaultIcon url 用於: server config,
virtual host, directory, .htaccess 需求: Indexes 状态: 基础 模组: mod_dir DefaultIcon
这个指令设定当不知道指定的图示为何时显示的图示供作 象徵索引之用。URl
是该图示的(%-escaped) 相对 URL 。例如: DefaultIcon /icon/unknow.xbm 4.6.7 DirectoryIndex
语法: DirectoryIndex local-url local-url 用於: server config, virtual host, directory, .htaccess 需求:
Indexes 状态: 基础 模组: mod_dir DirectoryIndex
这个指令设定当客户端藉由指定没有以档案做结尾的
目录名称请求该目录的索引时所要找寻的来源列表。Local-url 是在伺
服器上相对於请求之目录的文件;它通常是目录里某个档案的名称。可 以有好几个
URL ;伺服器会回传它找到的第一个。如果这些来源没有
一个存在,那麽伺服器将会自行产生一份该目录的列表。例如: DirectoryIndex
index.html 然後,对於 http://myserver/docs/ 的请求若该来源设定的档案存在 的话会回传
http://myserver/docs/index.html,如果不存在就回传该 目录的列表。
注意该文件并不需要是相对於该目录的: DirectoryIndex index.html index.txt /cgi-bin/index.pl
这会使得 /cgi-bin/index.pl 这个 CGI 指令稿在 index.html 以及 index.txt
都不存在於该目录的情况下被起动。 4.6.8 FancyIndexing 语法: FancyIndexing 布林值
用於: server config, virtual host, directory, .htaccess 需求: Indexes 状态: 基础 模组: mod_dir
FancyIndexing 此指令设定目录的象徵索引选项。布林值可以是 on 或 off。IndexOptions
这个指令应该用来参照之。 4.6.9 HeaderName 语法: HeaderName 档案名称 用於: server
config, virtual host, directory, .htaccess 需求: Indexes 状态: 基础 模组: mod_dir HeaderName
这个指令设定插入索引列示顶部的档案名称。当案名称是
要含入的档案知名称,而且相对於索引的目录。伺服器首先会把他当作 是 HTML
文件试图含入档案名称.html ,否则就当它是普通文字档含入 。例如: HeaderName
HEADER 当产生 /web 目录的索引时,伺服器首先将会找寻 /web/HEADER.html 这个
HTML 档案,若找到则将其含入,否则会含入 /web/HEADER 这个
普通文字档,如果存在的话。 参阅 ReadmeName 。 4.6.10 IndexIgnore 语法: IndexIgnore
档案 档案 ... 用於: server config, virtual host, directory, .htaccess 需求: Indexes 状态: 基础
模组: mod_dir IndexIgnore 这个指令把列出目录时要隐藏的档案加到列表中。档案
是指所要忽略之档案的副档名,部份档案名称,替代字元表示式或是
完整档案名称。多个 IndexIgnore 指令会把档案继续加入列表中而
不会取代前面的设定的忽略档案列表。依预设,此列表包含 `.' 。 例如: IndexIgnore
README .htaccess *~ 4.6.11 IndexOptions 语法: IndexOptions 选项 选项 ... 用於: server config,
virtual host, directory, .htaccess 需求: Indexes 状态: 基础 模组: mod_dir IndexOptions
这个指令指定进行目录索引时的动作。选项可以是下列 其中之一 FancyIndexing
这打该目录的象徵索引。 IconsAreLinks
这使图示成为档案链结的一部份以作为象徵索引之用。 ScanHTMLTitles 这打开撷取
HTML 文件的标题以作为象徵索引使用的功能。如果 该档案并没有藉由 AddDescription
所给的描述那麽 httpd 将 会为了取得此值而读取文件的 TITLE 标签。这会加重 CPU 及
磁碟的负担。 SuppressModified 这将会隐瞒象徵索引列示中的最後修改日期。
SuppressSize 这将会隐瞒象徵索引列示中的档案大小。 SuppressDescription
这将会隐瞒象徵索引列示中的档案名数。 预设是没有打开任何一个选项。如果有多个
IndexOptions 可以应用到
一个目录上,那麽最明白的那个会被完全采用;选项不会合并。例如: IndexOptions
FancyIndexing IndexOptions ScanHTMLTitles 那麽 /web/doc/spec 目录将只设为
ScanHTMLTitles 。 4.6.12 ReadmeName 语法: ReadmeName 档案名称 ... 用於: server config,
virtual host, directory, .htaccess 需求: Indexes 状态: 基础 模组: mod_dir ReadmeName
这个指令要附加到索引列示後面的档案之名称。档案名称
是指要含入的档案,而且是相对於索引的目录。伺服器首先会把他当作 是 HTML
文件试图含入档案名称.html ,否则就当它是普通文字档含入 。例如: ReadmeName
README 当产生 /web 目录的索引时,伺服器首先将会找寻 /web/README.html 这个
HTML 档案,若找到则将其含入,否则会含入 /web/README 这个
普通文字档,如果存在的话。 参阅 HeaderName 。 4.7 mod_imap 模组 这个模组包含在
mod_imap.c 档案里,而且依预设会编译进来。它是为 处理 .map
档案而提供的,用来代替 imagemap 这个 CGI 程式的功能 。任何含有 mime 型态为
application/x-httpd-imap 之资料的文件都 将由这个模组处理。 4.7.1 摘要
为了使用伺服端剖析(server-parsed) 的影像地图(imagemap)档,你首
先必须把这个模组编译到伺服器里去,并且在伺服器配置档中加入下列
这一行。这个项目指出影像地图档将会以 .map 副档名命名。 AddType
application/x-httpd-imap map 4.7.2 新特色 imagemap 这个模组加入了一些先前发行的
iamgemap 程式版本不可能 达成的新特色。 。URL 参照相对於 Referer: 的资讯
。经由新的 base_uri 栏位指定预设的 
。不需要 imagemap.conf 档案 。Point 参照 base_uri 选项: map 提供预设及旧式的 map
关连参考之功能。 refer 使用 Referer: 标头资讯参照相对目前文件的 URL 。
http://whateverurl 设定 URL 的 
设定使所有的参照都相对於 
。 地图档范例 default http:/lincoln/ base_uri referer rect .. 0,0 77,27 poly
http://www.inetnebr.com/ 78,0 194,27 circle http://www.inetnebr.com/loncoln/feedback/ 195,0
305,27 rect search_index 306,0 419,27 point http://www.zyzzyva.com/ 420,0 549,27
参照你的地图档  4.8 mod_include 模组 这个模组包含在 mod_include.c
档案里,而且依预设会编译进来。它 提供给伺服端剖析的 html 文件用,即所知的 SPML
文件。任何含mime 型态 text/x-server-parsed-html 或 text/x-server-parsed-html3
的文件将会由这个模组剖析,输出之结果的 mime 型态是 text/html。 4.8.1 SPML -
包含档案格式 这种文件被当作 HTML 文件剖析,并如同 SGML 的注解嵌入(embedded)
特殊的指令。指令一般的语法是: [an error occurred while processing this directive]
这里的值常包括在双引号里;许多指令只允许单一个属性-值的配对。
允许使用的项目是: config 这个指令控制各种剖析的方式。有效的属性是: errmsg
此值是如果剖析文件发生错误时送回客户端的讯息。 sizefmt
此值是设定显示档案大小使用的格式。有效的值是使用 位元组计算的 bytes 或是以 Kb 或
Mb 中合适者显示 的 abbrev 。 timefmt 此值是列印日期时由 strftime(3) 程式库函式使用的
字串。 echo 这个指令列印内涵的变数其中之一,定义如下。如果该变数未被
设定则印出(none)。印出的任何日期都依从目前配置的 timefmt 。属性: var
此值是要印出之变数的名称。 exec 此指令执行所给 shell 指令或 CGI
指令稿。InculdesNOEXEC 这个选项可以完全关闭这个指令。有效的属性是: cgi 此值指定
(%-encode)URL 到 CGI 指令稿的相对路径 。如果该路径没有以(/)
作为开始,那麽它就是相对於 目前的文件。这个路径所参照的文件会被当作是个 CGI
指令稿起动,即使伺服器并不认为它是个 CGI 指令稿
。然而,包含该指令稿的目录必须打开 CGI 指令稿的 支援(以 ScriptAlias 或 ExecCGI
选项打开)。 从客户端来的请求给予此指令稿 PATH_INFO 以及查询
字串(QUERY_STRING);但这无法在 URL 路径中指定。 所以在标准的 CGI
环境变数之外指令稿可以从内含的 变数取得这些资讯。 如果该指令稿回传 Location:
标头而不是一般的输出 ,那麽这将会被转换成 HTML 的链结。 include virtual
这个项目应该用来参照 exec cgi 。 cmd 伺服器将会以 /bin/sh
执行所给的字串。这个指令可 以取得内含的变数。 fsize
这个指令印出指定档案的大小,并依从 sizefmt 的格式指定。 属性: file
此值是包含要剖析之文件的目录之相对路径。 virtual 此值是相对於要剖析之文件的
(%-encoded) URL 路径 。如果该路径没有以(/) 作为开始,那麽它就是相对於
目前的文件。 flastmod 这个指令印出指定档案最後修改的日期,依从 timefmt 的格式
指定。属性与 fsize 指令的属性一样。 include
这个指令插入另一份文件或档案的内容到要剖析的档案里。任何
含入的档案都依从通常的存取控制。如果包含剖析档案的目录设 有 IncludesNOEXEC
选项,而且含入该文件会起动某支程式的话 ,那麽它将不会被含入;这阻止 CGI
指令稿的执行。否则 CGI 指令稿就会如同一般在指令中使用完整的 URL 指定的一样执行
,包含任何查询字串。 有个属性定义文件的位置: file
此值是包含目前要剖析之文件的目录之相对路径。它不 能包含有 ../
也不能是绝对路径。virtual 这个属性 永远应该用来参照这一个。 virtual
此值是相对於目前要剖析之文件的 (%-encoded)URL 。 此 URL
不能包含有动作(scheme)或主机名称,只能是
路径或选用的查询字串。如果它不是以倒斜线(/) 作为
开始那麽它就是相对於目前的文件。 URL 是由属性建构的,如果客户端请求的 URL
包含在被剖析的 输出则伺服器会回传该输出。因此含入的档案可以是巢状的。 4.8.2
内含的变数 这些变数可以提供给 echo 指令,以及任何由文件起动的程式取用。
DATE_GMT 目前的格林威治日期。 DATE_LOCAL 目前当地时间区域的日期。
DOCUMENT_NAME 使用者请求之文件的档案名称(不包括目录)。 DOCUMENT_URI
使用者请求之文件的 (%-decoded)URL 路径。注意,在巢状含入
档案这种情况下,这不会是目前文件的 URL 。 LAST_MODIFIED
使用者要求之文件最後修改的日期。 4.8.3 XBitHack 语法: XBitHack 状态 语法 预设:
XBitHack off 用於: server config, virtual host, directory, .htaccess 需求: Options 状态: 基础 模组:
mod_include XBitHack 这个指令控制一般 html 文件的剖析。状态可以是下列值: off
对可执行的档案一视同仁。 on
任何设有代表使用者可执行之位元的档案将被当作是伺服端剖析 的 html 文件。 full 与 on
相同但同时还测试代表群组可执行之位元。如果有设定,
那麽不会送出最後修改日期。设定这个位元使客户端以及代理者 (proxies)
可以暂存请求的结果。 4.9 mod_log_common 模组 这个模组包含在 mod_log_common.c
档案里,而且依预设会编译进来。 它提供使用一般记录档格式(Common Logfile Format)
记录对伺服器之 请求的功能。 4.9.1 记录档格式
对於每个请求记录档包含个别的一行。一行是由数个以空白间隔的记 号所组成: host
ident authuser date request status bytes 如果某个记号没有值就会以短线(-)
表示。这些记号以及其代表的意义 如下: host
客户端的完整领域名称,或者如果无法取得其名称的话 则记录 IP 位址 ident 如果开启
IdentityCheck 功能而且客户端机器执行有 identd 的话,那麽这会是客户端所报告的
identity 资讯。 authuser 如果请求的是密码保护的文件,那麽这会是请求中使用
的使用者识别码。 date 请求的日期以及时间,使用下列的格式: date =
[day/month/year:hour:minute:second zone] day = 2*数字 month = 3*字元 year = 4*数字 hour =
2*数字 minute = 2*数字 second = 2*数字 zone = ('+' | '-') 4*数字 request
从客户端传来的请求行,以双引号(") 括起。 status 回传给客户端,三位数字的状态码。
bytes 回传给客户端的位元组数量,报包含任何标头。 4.9.2 TransferLog 语法: TransfetLog
档案-管线 预设: TransferLog logs/transfer_log 用於: server config, virtual host 状态: 基础
模组: mod_log_common TransferLog
这个指令设定伺服器记录进入之请求的档案名称。档案- 管线是这些其中之一:
一个档案名称 一个相对於 ServerRoot 的档案名称 `|' 跟随著一个指令
从标准输入接收参考记录资讯的程式。注意如果虚拟主机从主要 伺服器继承 RefererLog
设定的话不会起动新的程式。 安全: 如果在此使用程式,它将会以起动 httpd
的使用者身分执行。 如果伺服器由 root 起动那麽此程式就是由 root 执行;所以要确定次
程式的安全性。 4.10 mod_mime 模组 这个模组包含在 mod_mime.c
档案里,而且依预设会编译进来。他提供 从档案名称决定档案型态的功能。 4.10.1 摘要
这个模组用来决定文件的 mime 型态。某些 mime 型态会指出伺服器得
执行的特别程序,其它的型态则传回客户端,如此浏览器就可以适当地 处理文件。
文件的档案名称被当作基本名称的一部份,其後跟随某些副档名,次序 如下:
base.type.language.enc 其中 type 这个副档名设定文件的型态,型态定义在 TypesConfig
档案 以及 AddType 指令的设定中。而 language 这个副档名设定文件的语言 ,藉由
AddLanguage 指令定义。最後,enc 这个副档名设定文件的编码 ,藉由 AddEncoding
指令定义。 4.10.2 AddEncoding 语法: AddEncoding mime-enc 副档名 副档名 用於: server
config, virtual host, directory, .htacess 需求: FileInfo 状态: 基础 模组: mod_mime AddEncoding
这个指令以指定的编码型态把可能作为档案名称结尾的副
档名加入档案副档名列表。Mime-enc 是用在以该副档名结尾的文件的 mime 编码。例如:
AddEncoding x-gzip gz AddEncoding x-compress Z 这将会使以 .gz 结尾的档案被标记为使用
z-gzip 编码,以及 .Z 结 尾的档案被标记为使用 x-compress 编码。 4.10.3 AddLanguage 语法:
AddLanguage mime-lang 副档名 副档名 用於: server config, virtual host, directory, .htaccess
需求: FileInfo 状态: 基础 模组: mod_mime AddLanguage
这个指令以指定的语言把可能作为档案名称结尾的副档名
加入档案副档名列表。Mime-lang 是以此副档名作为名称结尾之档案的 mime
语言,这是在所有作为编码的副档名移除之後再决定的。例如: AddEncoding x-compress Z
AddLanguage en .en AddLanguage fr .fr 那麽 xxxx.ez.Z
将会被当作压缩过的英文文件。虽然内容的语言已经
报告给客户端,浏览器不太可能使用此资讯。AddLanguage 这个指令对 内容协商(content
negotiation) 会更有用,这样伺服器可以参考客户 端的语言回传数份文件中的一份。
4.10.4 AddType 语法: AddType mime-type 副档名 副档名 用於: server config, virtual host,
directory, .htaccess 需求: FileInfo 状态: 基础 模组: mod_mime AddType
这个指令以指定的内容型态把可能作为档案名称结尾的副档名 。Mime-type
是用在以该副档名结尾的文件的 mime 型态。这是在所有
作为编码以及语言的副档名移除之後再决定的。例如: AddType image/gif GIF 新的 mime
型态建议使用 AddType 指令加入而不要修改 TypesConfig 档案。 注意,与 NCSA httpd
不同,这个指令不能用来设定特殊档案的型态。 4.10.5 TypesConfig 语法: TypesConfig
档案名称 预设: TypesConfig conf/mime.types 用於: server config 状态: 基础 模组: mod_mime
TypesConfig 这个指令设定 mime 型态配置档所在的位置。档案名称是 相对於 ServerRoot
的。这个档案设定从档案扩充档名对应内容型态的
预设列表;不建议变更这个档案。使用 AddType 指令取代对它做修改
。档案所包含的行是使用 AddType 指令的参数格式: mime 型态 副档名 副档名 ...
副档名是小写,空白行,以及('#') 起始的行会被忽略。 4.11 mod_negotiation 模组
这个模组包含在 mod_negotiation.c 档案里,而且依预设会编译进来
。它是提供作为内容协商之用的。任何文件如果它的 mime 型态之设定 为
application/x-type-map 则将会由这个模组处理。 4.11.1 摘要
内容协商,或更精确的说,内容选择,是从几份可以取用的文件中选择
最符合客户端能力的文件。这有两种实作的方法。
。明确列出包含差异之档案的型态对应(这就是使用 mime 型态 为 application/x-type-map
的档案) 。多重观点搜寻(藉由 MultiViews 选项开启),此时伺服器会
执行隐含的档案名称样板对照,并从中选择结果。 型态对应 型态对应的格式与 RFC822
邮件标头相同。它包含以空白行间隔的文件 描述,以杂凑('#')
字元开头的行会被当作注解。文件描述由数种标头
记录组成;如果以空白作为连续行的开始那麽记录可以连续很多行。前
导的空白会被删除而这些行就可以连接起来。标头记录包含关键字名称
,这总是以冒号结尾,跟著一个值。在关键字与值之间,以及值的记号
之间允许空白。可以使用的标头是: Content-Encoding: 档案的编码。目前藉由 http
只认得两种编码; compress 压缩 的档案是 x-compress 而 gzip 压缩的档案是 x-gzip 。
Content-Language: 不同的语言,使用网际网路标准语言码,像是 en 。 Content-Length:
档案的长度,单位是位元组。如果这个标头不存在,那麽就使用 该档案真实的长度。
Content-Type: 文件的 MIME 媒体型态,有选用的参数。参数以分号与媒体型态
及其它参数间隔。参数的语法是 名称=值;可以使用的参数是: level
此值是整数,指出媒体型态版本。对於 text/html 此 预设为 2 而其它则为 0 。 qs
此值是浮点数其值在 0. 以及 1 之间。它指出差异的 ‘质’。 例如: Content-Type:
image/jpeg; qs=0.8 URI: 包含这个有所差异的档案之 URL,相对於 map 档案。 多重观点
重观点搜寻是以 MultiViews 选项开启。如果该伺服器接收到一个对於 /some/dir/foo
的请求而 /some/dir/foo 不存在的话,那麽伺服器会 读取目录中所有名为 foo.*
的档案,并且有效地假造这些档案的型态
对应,如果客户端以名称查问它们就以相同的媒体型态以及内容编码来
指定它们。然後选择最符合客户端请求的一份,并且回传该文件。 4.11.2 LanguagePriority
语法: LanguagePriority mime-lang mime-lang 用於: server config, virtual host, directory, .htaccess
需求: FileInfo 状态: 基础 模组: mod_mime LanguagePriority
这个指令是在处理多重观点请求时设定若有差异,
而客户端没有表示要参照何种语言的情况下的语言优先权。 mime-lang
列表是递减的顺序。例如: LanguagePriority en fr de 请求 foo.html ,而 foo.html.fr 以及
foo.html.de 都存在,但浏 览器没有表示要参照的语言时,则回传 foo.html.fr 。 4.12
mod_userdir 模组 这个模组包含在 mod_userdir.c 档案里,而且依预设会编译进来。它
用来提供代表使用者的(user-specific) 目录。 4.12.1 UserDir 语法: UserDir directory 预设:
UserDir public_html 用於: server config, virtual host 状态: 基础 模组: mod_userdir UserDir
这个指令设定在使用者自家(home)目录里的一个真实目录,当
接收到一个对使用者文件所发出的请求时会使用这个目录。 Directory 可以是 Disable
,用来关掉这项特色,或者是一个目录的名称。如果 没有关掉,那麽以
http://myserver/~unix-username 作为开始的一个 URL 请求将会被转换成以 home-dir/directory
作为开始的档案名称, 其中 home-dir 是 unix-username 这个使用者的自家目录。 范例:
UserDir public_html 那麽一个对 http://myserver/~foo56/adir/file.html 的请求将传回
http://myserver/home/foo56/public_html/adir/file.html 档案。 第五章 阿帕契扩充模组 5.1
mod_auth_dbm 模组 这个模组包含在 mod_auth_dbm.c
这个档案里,而且依预设不会编译进 去。它提供使用 DBM
档案做使用者验认的功能。参阅 DBM 的使用者 文件。 5.1.1 AuthDbmGroupFile 语法:
AuthDBMGroupFile 档案名称 用於: directory, .htaccess 需求: AuthConfig 状态: 扩充 模组:
mod_auth_dbm AuthDBMGroupFile 这个档案设定作为验认用的 DBM 档案名称,其中
包含使用者群组的列表。档案名称是该群组档案的绝对路径。
这个档案是以使用者名称作为关键。而使用者後的值则是该使用者所属
群组的列表,以逗点分隔。此值不能有空白,而且不能包含冒号。 安全: 确定
AuthDBMGroupFile 存放在伺服器的文件树之外;不要把它
放在它所要保护的目录里。否则客户端将能下载 AuthDBMGroupFile 。 参阅 AuthName,
AuthType 以及 AuthDBMUserFile 。 5.1.2 AuthDBMUserFile 语法: AuthDBMUserFile 档案名称
用於: directory, .htaccess 需求: AuthConfig 状态: 扩充 模组: mod_auth_dbm AuthDBMUserFile
这个档案设定作为验认之用的 DBM 档案名称,其中
包含使用者与密码的列表。档案名称是该使用者档案的绝对路径。
这个档案是以使用者名称作为关键。使用者後的值是 crypt() 加密过
的密码,其後可以加上选择性的冒号以及随意的资料。伺服器将会忽略
这些冒号跟资料。 安全: 确定 AuthDBMUserFile 存放在伺服器的文件树之外;不要把它
放在它所要保护的目录里。否则客户端将能下载 AuthDBMUserFile 。 参阅 AuthName,
AuthType 以及 AuthDBMGroupFile 。 5.2 mod_cookies 模组 这个模组包含在 mod_cookies.c
这个档案里,而且依预设不会编译进 去。它提供 Netscape(TM) cookies
。这个模组没有说明文件。 5.2.1 CookieLog 语法: CookieLog 档案名称 用於: server config,
virtual host 状态: 实验 模组: mod_cookies CookieLog 这个指令设定记录 cookies
用的档案名称。这个档案名称 是 ServerRoot 的相对目录。 5.3 mod_dld 模组
这个模组包含在 mod_dld.c 这个档案里,而且依预设不会编译进去。
它提供在启动时载入执行码及模组到伺服器里去的功能,使用 GNU dld 程式库。 5.3.1
摘要 这个选用性的 dld 模组是一段作为观念证明(proof-of-concept)用的
程式码,它如同配置自己一般载入其它模组到伺服器里去(只有第一次
;目前为止,重新读取配置档无法影响到已经载入的模组),使用 GNU
的动态连结程式库(DLD) 。它没有预设编译进去,因为不是每个人都有 DLD
,但是我在试的时候可以。(注意最後几个字)。 注意因为某些缘故,LoadFile /lib/libc.a
看来似乎是必须的。 注意: 当伺服器起动时 DLD
需要读取在伺服器程式之外的符号表格;
如果伺服器在起动时不能找到它自己的程式码那麽这些指令就会失败。 5.3.2 LoadFile
语法: LoadFile 档案名称 档案名称 ... 用於: server config 状态: 实验 模组: mod_dld LoadFile
这个指令在伺服器起动时链结其所指名的目的档或程式库;
这是用来载入某些模组运作时也许需要的额外程式码。档案名称是相对 於 ServerRoot
的。 5.3.3 LoadModule 语法: LoadModule 模组 档案名称 用於: server config 状态: 实验 模组:
mod_dld LoaddModule 这个指令链结目的档或程式库的档案名称并且把所指名的
模组加入使用中模组的列表。模组是档案中型态为 module 的外部变数 。例如:
LoadModule ai_backcompat_module modules/mod_ai_backcompat.o LoadFile /lib/libc.a 载入
ServerRoot 里的 modules 子目录下的模组。 5.4 mod_log_agent 模组 这个模组包含在
mod_log_agent.c 这个档案里,而且依预设不会编译
进去。它提供客户端使用者程式的记录功能。 5.4.1 AgentLog 语法: AgentLog 档案-管线
预设: AgentLog logs/agent_log 用於: server config, virtual host 状态: 扩充 模组: mod_log_agent
AgentLog 这个指令设定伺服器记录进入之请求的档案名称,其内容为 UserAgent
此标头。档案-管线是这些其中之一: 一个档案名称 一个相对於 ServerRoot 的档案名称 `|'
跟随著一个指令 从标准输入接收参考记录资讯的程式。注意如果虚拟主机从主要
伺服器继承 RefererLog 设定的话不会起动新的程式。 安全:
如果在此使用程式,它将会以起动 httpd 的使用者身分执行。 如果伺服器由 root
起动那麽此程式就是由 root 执行;所以要确定次 程式的安全性。 这个指令是为了与
NCSA 1.4 相容而提供的。 5.5 mod_log_config 模组 这个模组包含在 mod_log_config.c
这个档案里,而且依预设不会编译
进去。它提供记录对伺服器之请求的功能,使用由使用者指定的格式。 5.5.1 摘要
这是个实验性质的模组,它实作 TransferLog 这个指令(与一般记录
模组相同),以及另一个指令,LogFormat 。有错误也不会让我惊讶。 LogFormat
的参数是个字串,可以包含要复制到记录档里的文字,以及 如下所列的 `%' 指令: %...h:
远端主机 %...l: 远端的签入名称(从 identd 得知,如果对方 有支援) %...u:
远端使用者(从 auth 得知,如果回传的状态 (%S)为 401 的话那这有假造的可能) %...t:
时间,一般的时间记录格式 %...r: 请求的第一行 %...s:
状态。用於遇到内部重导的请求,这是 {\bf original}请求的状态 --- %...>s 是 最後的。
%...b: 送出的位元组 %...{foobar}i: Foobar 的内容: 要送往客户端之请求里面的 标头行。
%...{foobar}o: Foobar 的内容: 在回覆(reply) 里的标头行 `...' 这个部份可以完全不要(e.g. "%h
%u %r %s %b") ,或者它可以 表示要包含某项目的条件(如果不符合该条件那麽它会被
`-' 取代) 。要注意的是,在字串上的 %r, %...i 以及 %...o 没有脱离的实作 (no escaping
performed); 有些记性很好的人可能记得我认为这不是
个好主意,直到现在,我仍然对它很感冒,但是要看出如何以 `%...i'
‘做正确的事’是很困难的,除非我们 URL-escape 每一件事并以 CLF 打断它们。
条件的形式是一份 HTTP 状态码的列表,可能有也可能没有 `!' 前导 。因此
`%400,501{User-agent}i' 记录 User-agent: 只对错误状态 400 及
501(错误请求,没有实作)作用;`%!200,304,302{Referer}i' 记录 Referer:
对所有没回传正常状态的请求作用。 预设的 LogFormat 重现 CFL; 如下。
配合虚拟主机使用的想法如下: 虚拟主机可以拥有它自己的 LogFormat ,或是它自己的
TransferLog。如果它没有自己的 LogFormat,它就从 主要伺服器继承。如果它没有自己的
TransferLog,他就写到相同的描 述子(descriptor)去(意指相同的 `|...' 程序)。
这意谓你可以像这样做: LogFormaat "hosta ..." ... LogFormat "hostb ..." ... ...
使不同的虚拟伺服器写到相同的记录档去,但仍然有些关於它们从
哪个伺服器而来的标示,虽然使用 %v 指令可能会是处理这个情况比较
好的方法。多加注意此格式的改变。 5.5.2 LogFormat 语法: LogFormat 字串 预设: LogFormat
"%h %l %u %t \"%r\" %s %b" 用於: server config, virtual host 状态: 实验 模组: mod_log_config
这设定记录档的格式。 5.5.3 TransferLog 语法: TransferLog 档案-管线 预设: TransferLog
logs/transfer_log 用於: server config, virtual host 状态: 实验 模组: mod_log_config TransferLog
这个指令设定伺服器记录进入之请求的档案名称。档案- 管线是下列其中之一
一个档案名称 一个相对於 ServerRoot 的档案名称 `|' 跟随著一个指令
从标准输入接收参考记录资讯的程式。注意如果虚拟主机从主要 伺服器继承 RefererLog
设定的话不会起动新的程式。 安全: 如果在此使用程式,它将会以起动 httpd
的使用者身分执行。 如果伺服器由 root 起动那麽此程式就是由 root 执行;所以要确定次
程式的安全性。 5.6 mod_log_refer 模组 这个模组包含在 mod_log_refer.c
这个档案里,而且依预设不会编译
进去。它提供的功能是记录参照到此伺服器上之文件的文件。 5.6.1 记录档的格式
记录档为每个参考记录个别的一行。每一行的格式 uri -> 文件 其中 uri
是客户端要求所参考之文件的(%-escaped) URI ,而文件则
是被参考之文件的(%-decode)本地 URL 。 5.6.2 RefererIgnore 语法: RefererIgnore 字串 字串 ...
用於: server config, virtual config 状态: 扩充 模组: mod_log_refer RefererIgnore
这个指令把要忽略的参考标头(Referer headers) 加入
字串列表中。如果参考标头中包含此列表里的任何字串,那麽不会记录
该请求的参考资讯。例如: RefererIgnore www.ncsa.uiuc.edu 这会避免记录来自
www.ncsa.uiuc.edu 的参考。 5.6.3 RefererLog 语法: RefererLog 档案-管线 用於: server config,
virtual config 状态: 扩充 模组: mod_log_refer RefererLog
这个指令设定伺服器记录进入之请求的档案名称,其内容
为参考标头。档案-管线是这些其中之一: 一个档案名称 一个相对於 ServerRoot
的档案名称 `|' 跟随著一个指令
从标准输入接收参考记录资讯的程式。注意如果虚拟主机从主要 伺服器继承 RefererLog
设定的话不会起动新的程式。 安全: 如果在此使用程式,它将会以起动 httpd
的使用者身分执行。 如果伺服器由 root 起动那麽此程式就是由 root 执行;所以要确定次
程式的安全性。 这个指令是为了与 NCSA 1.4 相容而提供的。 第六章
阿帕契应用程式界面注意事项 (略) 

--
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.10.128]



--------------19A1346069D8BD19353C51DE--


--
※ 来源:.饮水思源站 bbs.sjtu.edu.cn.[FROM: wangv%202.120.241.24] 

返回首页分类讨论区全部讨论区

Copyright © 1996,1999 SJTUBBS, All Rights Reserved.

版权所有 上海交大BBS饮水思源站