繁体中文
设为首页
加入收藏
当前位置:PHP技术首页 >> 系统相关 >> APACHE(5)

APACHE(5)

2004-10-01 08:26:10  作者:  来源:互联网  浏览次数:30  文字大小:【】【】【
简介:4.8.1 SPML - 包含文件格式 这种文件被当作 HTML 文件剖析,并如同 SGML 的注解嵌入(embedded) 特殊的指令。指令一般的语法是: <!--# 项目属性=值 属性=值 ...--> 这里的值常包括在双引号里;许多...
关键字:APACHE

4.8.1 SPML - 包含文件格式

这种文件被当作 HTML 文件剖析,并如同 SGML 的注解嵌入(embedded)

特殊的指令。指令一般的语法是:

这里的值常包括在双引号里;许多指令只允许单一个属性-值的配对。

允许使用的项目是:

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 。

责任编辑:admin
相关文章