明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

APACHE(5)

[摘要]4.8.1 SPML - 包含文件格式 這種文件被當(dāng)作 HTML 文件剖析,并如同 SGML 的注解嵌入(embedded) 特殊的指令。指令一般的語法是: <!--# 項目屬性=值 屬性=值...
4.8.1 SPML - 包含文件格式

這種文件被當(dāng)作 HTML 文件剖析,并如同 SGML 的注解嵌入(embedded)
特殊的指令。指令一般的語法是:

<!--# 項目屬性=值 屬性=值 ...-->

這里的值常包括在雙引號里;許多指令只允許單一個屬性-值的配對。

允許使用的項目是:

config
這個指令控制各種剖析的方式。有效的屬性是:

errmsg
此值是如果剖析文件發(fā)生錯誤時送回客戶端的訊息。

sizefmt
此值是設(shè)定顯示文件大小使用的格式。有效的值是使用
位元組計算的 bytes 或是以 Kb 或 Mb 中合適者顯示
的 abbrev 。

timefmt
此值是列印日期時由 strftime(3) 程序庫函式使用的
字串。

echo
這個指令列印內(nèi)涵的參數(shù)其中之一,定義如下。如果該參數(shù)未被
設(shè)定則印出(none)。印出的任何日期都依從目前配置的 timefmt
。屬性:

var
此值是要印出之參數(shù)的名稱。

exec
此指令執(zhí)行所給 shell 指令或 CGI 指令稿。InculdesNOEXEC
這個選項可以完全關(guān)閉這個指令。有效的屬性是:

cgi
此值指定 (%-encode)URL 到 CGI 指令稿的相對路徑
。如果該路徑?jīng)]有以(/) 作為開始,那麼它就是相對於
目前的文件。這個路徑所參照的文件會被當(dāng)作是個 CGI
指令稿起動,即使服務(wù)器并不認(rèn)為它是個 CGI 指令稿
。然而,包含該指令稿的目錄必須打開 CGI 指令稿的
支援(以 ScriptAlias 或 ExecCGI 選項打開)。
從客戶端來的請求給予此指令稿 PATH_INFO 以及查詢
字串(QUERY_STRING);但這無法在 URL 路徑中指定。
所以在標(biāo)準(zhǔn)的 CGI 環(huán)境參數(shù)之外指令稿可以從內(nèi)含的
參數(shù)取得這些資訊。
如果該指令稿回傳 Location: 標(biāo)頭而不是一般的輸出
,那麼這將會被轉(zhuǎn)換成 HTML 的鏈結(jié)。
include virtual 這個項目應(yīng)該用來參照 exec cgi 。

cmd
服務(wù)器將會以 /bin/sh 執(zhí)行所給的字串。這個指令可
以取得內(nèi)含的參數(shù)。

fsize
這個指令印出指定文件的大小,并依從 sizefmt 的格式指定。
屬性:

file
此值是包含要剖析之文件的目錄之相對路徑。

virtual
此值是相對於要剖析之文件的 (%-encoded) URL 路徑
。如果該路徑?jīng)]有以(/) 作為開始,那麼它就是相對於
目前的文件。

flastmod
這個指令印出指定文件最後修改的日期,依從 timefmt 的格式
指定。屬性與 fsize 指令的屬性一樣。

include
這個指令插入另一份文件或文件的內(nèi)容到要剖析的文件里。任何
含入的文件都依從通常的存取控制。如果包含剖析文件的目錄設(shè)
有 IncludesNOEXEC 選項,而且含入該文件會起動某支程序的話
,那麼它將不會被含入;這阻止 CGI 指令稿的執(zhí)行。否則 CGI
指令稿就會如同一般在指令中使用完整的 URL 指定的一樣執(zhí)行
,包含任何查詢字串。
有個屬性定義文件的位置:

file
此值是包含目前要剖析之文件的目錄之相對路徑。它不
能包含有 ../ 也不能是絕對路徑。virtual 這個屬性
永遠(yuǎn)應(yīng)該用來參照這一個。

virtual
此值是相對於目前要剖析之文件的 (%-encoded)URL 。
此 URL 不能包含有動作(scheme)或主機名稱,只能是
路徑或選用的查詢字串。如果它不是以倒斜線(/) 作為
開始那麼它就是相對於目前的文件。

URL 是由屬性建構(gòu)的,如果客戶端請求的 URL 包含在被剖析的
輸出則服務(wù)器會回傳該輸出。因此含入的文件可以是巢狀的。


4.8.2 內(nèi)含的參數(shù)

這些參數(shù)可以提供給 echo 指令,以及任何由文件起動的程序取用。

DATE_GMT
目前的格林威治日期。

DATE_LOCAL
目前當(dāng)?shù)貢r間區(qū)域的日期。

DOCUMENT_NAME
使用者請求之文件的文件名稱(不包括目錄)。

DOCUMENT_URI
使用者請求之文件的 (%-decoded)URL 路徑。注意,在巢狀含入
文件這種情況下,這不會是目前文件的 URL 。

LAST_MODIFIED
使用者要求之文件最後修改的日期。


4.8.3 XBitHack

語法: XBitHack 狀態(tài)
語法
預(yù)設(shè): XBitHack off
用於: server config, virtual host, directory, .htaccess
需求: Options
狀態(tài): 基礎(chǔ)
模組: mod_include

XBitHack 這個指令控制一般 html 文件的剖析。狀態(tài)可以是下列值:

off
對可執(zhí)行的文件一視同仁。

on
任何設(shè)有代表使用者可執(zhí)行之位元的文件將被當(dāng)作是服務(wù)端剖析
的 html 文件。

full
與 on 相同但同時還測試代表群組可執(zhí)行之位元。如果有設(shè)定,
那麼不會送出最後修改日期。設(shè)定這個位元使客戶端以及代理者
(proxies) 可以暫存請求的結(jié)果。


4.9 mod_log_common 模組

這個模組包含在 mod_log_common.c 文件里,而且依預(yù)設(shè)會編譯進(jìn)來。
它提供使用一般記錄檔格式(Common Logfile Format) 記錄對服務(wù)器之
請求的功能。


4.9.1 記錄檔格式

對於每個請求記錄檔包含個別的一行。一行是由數(shù)個以空白間隔的記
號所組成:

host ident authuser date request status bytes

如果某個記號沒有值就會以短線(-) 表示。這些記號以及其代表的意義
如下:

host
客戶端的完整域名,或者如果無法取得其名稱的話
則記錄 IP 位址

ident
如果開啟 IdentityCheck 功能而且客戶端機器執(zhí)行有
identd 的話,那麼這會是客戶端所報告的 identity
資訊。

authuser
如果請求的是密碼保護(hù)的文件,那麼這會是請求中使用
的使用者識別碼。

date
請求的日期以及時間,使用下列的格式:
date = [day/month/year:hour:minute:second
zone]
day = 2*數(shù)字
month = 3*字元
year = 4*數(shù)字
hour = 2*數(shù)字
minute = 2*數(shù)字
second = 2*數(shù)字
zone = ('+' '-') 4*數(shù)字

request
從客戶端傳來的請求行,以雙引號(") 括起。

status
回傳給客戶端,三位數(shù)字的狀態(tài)碼。

bytes
回傳給客戶端的位元組數(shù)量,報包含任何標(biāo)頭。


4.9.2 TransferLog

語法: TransfetLog 文件-管線
預(yù)設(shè): TransferLog logs/transfer_log
用於: server config, virtual host
狀態(tài): 基礎(chǔ)
模組: mod_log_common

TransferLog 這個指令設(shè)定服務(wù)器記錄進(jìn)入之請求的文件名稱。文件-
管線是這些其中之一:

一個文件名稱
一個相對於 ServerRoot 的文件名稱

` ' 跟隨著一個指令
從標(biāo)準(zhǔn)輸入接收參考記錄資訊的程序。注意如果虛擬主機從主要
服務(wù)器繼承 RefererLog 設(shè)定的話不會起動新的程序。

安全: 如果在此使用程序,它將會以起動 httpd 的使用者身分執(zhí)行。
如果服務(wù)器由 root 起動那麼此程序就是由 root 執(zhí)行;所以要確定次
程序的安全性。


4.10 mod_mime 模組

這個模組包含在 mod_mime.c 文件里,而且依預(yù)設(shè)會編譯進(jìn)來。他提供
從文件名稱決定文件型態(tài)的功能。


4.10.1 摘要

這個模組用來決定文件的 mime 型態(tài)。某些 mime 型態(tài)會指出服務(wù)器得
執(zhí)行的特別程序,其它的型態(tài)則傳回客戶端,如此瀏覽器就可以適當(dāng)?shù)?
處理文件。

文件的文件名稱被當(dāng)作基本名稱的一部份,其後跟隨某些副文件名,次序
如下:

base.type.language.enc

其中 type 這個副文件名設(shè)定文件的型態(tài),型態(tài)定義在 TypesConfig 文件
以及 AddType 指令的設(shè)定中。而 language 這個副文件名設(shè)定文件的語言
,藉由 AddLanguage 指令定義。最後,enc 這個副文件名設(shè)定文件的編碼
,藉由 AddEncoding 指令定義。


4.10.2 AddEncoding

語法: AddEncoding mime-enc 副文件名 副文件名
用於: server config, virtual host, directory, .htacess
需求: FileInfo
狀態(tài): 基礎(chǔ)
模組: mod_mime

AddEncoding 這個指令以指定的編碼型態(tài)把可能作為文件名稱結(jié)尾的副
文件名加入文件副文件名列表。Mime-enc 是用在以該副文件名結(jié)尾的文件的
mime 編碼。例如:

AddEncoding x-gzip gz
AddEncoding x-compress Z

這將會使以 .gz 結(jié)尾的文件被標(biāo)記為使用 z-gzip 編碼,以及 .Z 結(jié)
尾的文件被標(biāo)記為使用 x-compress 編碼。


4.10.3 AddLanguage

語法: AddLanguage mime-lang 副文件名 副文件名
用於: server config, virtual host, directory, .htaccess
需求: FileInfo
狀態(tài): 基礎(chǔ)
模組: mod_mime

AddLanguage 這個指令以指定的語言把可能作為文件名稱結(jié)尾的副文件名
加入文件副文件名列表。Mime-lang 是以此副文件名作為名稱結(jié)尾之文件的
mime 語言,這是在所有作為編碼的副文件名移除之後再決定的。例如:

AddEncoding x-compress Z
AddLanguage en .en
AddLanguage fr .fr

那麼 xxxx.ez.Z 將會被當(dāng)作壓縮過的英文文件。雖然內(nèi)容的語言已經(jīng)
報告給客戶端,瀏覽器不太可能使用此資訊。AddLanguage 這個指令對
內(nèi)容協(xié)商(content negotiation) 會更有用,這樣服務(wù)器可以參考客戶
端的語言回傳數(shù)份文件中的一份。


4.10.4 AddType

語法: AddType mime-type 副文件名 副文件名
用於: server config, virtual host, directory, .htaccess
需求: FileInfo
狀態(tài): 基礎(chǔ)
模組: mod_mime

AddType 這個指令以指定的內(nèi)容型態(tài)把可能作為文件名稱結(jié)尾的副文件名
。Mime-type 是用在以該副文件名結(jié)尾的文件的 mime 型態(tài)。這是在所有
作為編碼以及語言的副文件名移除之後再決定的。例如:

AddType image/gif GIF

新的 mime 型態(tài)建議使用 AddType 指令加入而不要修改 TypesConfig
文件。

注意,與 NCSA httpd 不同,這個指令不能用來設(shè)定特殊文件的型態(tài)。


4.10.5 TypesConfig

語法: TypesConfig 文件名稱
預(yù)設(shè): TypesConfig conf/mime.types
用於: server config
狀態(tài): 基礎(chǔ)
模組: mod_mime

TypesConfig 這個指令設(shè)定 mime 型態(tài)配置檔所在的位置。文件名稱是
相對於 ServerRoot 的。這個文件設(shè)定從文件擴充文件名對應(yīng)內(nèi)容型態(tài)的
預(yù)設(shè)列表;不建議變更這個文件。使用 AddType 指令取代對它做修改
。文件所包含的行是使用 AddType 指令的參數(shù)格式:

mime 型態(tài) 副文件名 副文件名 ...

副文件名是小寫,空白行,以及('#') 起始的行會被忽略。


4.11 mod_negotiation 模組

這個模組包含在 mod_negotiation.c 文件里,而且依預(yù)設(shè)會編譯進(jìn)來
。它是提供作為內(nèi)容協(xié)商之用的。任何文件如果它的 mime 型態(tài)之設(shè)定
為 application/x-type-map 則將會由這個模組處理。


4.11.1 摘要

內(nèi)容協(xié)商,或更精確的說,內(nèi)容選擇,是從幾份可以取用的文件中選擇
最符合客戶端能力的文件。這有兩種實作的方法。

。明確列出包含差異之文件的型態(tài)對應(yīng)(這就是使用 mime 型態(tài)
為 application/x-type-map 的文件)

。多重觀點搜尋(藉由 MultiViews 選項開啟),此時服務(wù)器會
執(zhí)行隱含的文件名稱樣板對照,并從中選擇結(jié)果。

型態(tài)對應(yīng)

型態(tài)對應(yīng)的格式與 RFC822 郵件標(biāo)頭相同。它包含以空白行間隔的文件
描述,以雜湊('#') 字元開頭的行會被當(dāng)作注解。文件描述由數(shù)種標(biāo)頭
記錄組成;如果以空白作為連續(xù)行的開始那麼記錄可以連續(xù)很多行。前
導(dǎo)的空白會被刪除而這些行就可以連接起來。標(biāo)頭記錄包含關(guān)鍵字名稱
,這總是以冒號結(jié)尾,跟著一個值。在關(guān)鍵字與值之間,以及值的記號
之間允許空白?梢允褂玫臉(biāo)頭是:

Content-Encoding:
文件的編碼。目前藉由 http 只認(rèn)得兩種編碼; compress 壓縮
的文件是 x-compress 而 gzip 壓縮的文件是 x-gzip 。

Content-Language:
不同的語言,使用網(wǎng)際網(wǎng)路標(biāo)準(zhǔn)語言碼,像是 en 。

Content-Length:
文件的長度,單位是位元組。如果這個標(biāo)頭不存在,那麼就使用
該文件真實的長度。

Content-Type:
文件的 MIME 媒體型態(tài),有選用的參數(shù)。參數(shù)以分號與媒體型態(tài)
及其它參數(shù)間隔。參數(shù)的語法是 名稱=值;可以使用的參數(shù)是:

level
此值是整數(shù),指出媒體型態(tài)版本。對於 text/html 此
預(yù)設(shè)為 2 而其它則為 0 。

qs
此值是浮點數(shù)其值在 0. 以及 1 之間。它指出差異的
‘質(zhì)’。

例如:
Content-Type: image/jpeg; qs=0.8

URI:
包含這個有所差異的文件之 URL,相對於 map 文件。


多重觀點

重觀點搜尋是以 MultiViews 選項開啟。如果該服務(wù)器接收到一個對於
/some/dir/foo 的請求而 /some/dir/foo 不存在的話,那麼服務(wù)器會
讀取目錄中所有名為 foo.* 的文件,并且有效地假造這些文件的型態(tài)
對應(yīng),如果客戶端以名稱查問它們就以相同的媒體型態(tài)以及內(nèi)容編碼來
指定它們。然後選擇最符合客戶端請求的一份,并且回傳該文件。


4.11.2 LanguagePriority

語法: LanguagePriority mime-lang mime-lang
用於: server config, virtual host, directory, .htaccess
需求: FileInfo
狀態(tài): 基礎(chǔ)
模組: mod_mime

LanguagePriority 這個指令是在處理多重觀點請求時設(shè)定若有差異,
而客戶端沒有表示要參照何種語言的情況下的語言優(yōu)先權(quán)。 mime-lang
列表是遞減的順序。例如:

LanguagePriority en fr de

請求 foo.html ,而 foo.html.fr 以及 foo.html.de 都存在,但瀏
覽器沒有表示要參照的語言時,則回傳 foo.html.fr 。


4.12 mod_userdir 模組

這個模組包含在 mod_userdir.c 文件里,而且依預(yù)設(shè)會編譯進(jìn)來。它
用來提供代表使用者的(user-specific) 目錄。


4.12.1 UserDir

語法: UserDir directory
預(yù)設(shè): UserDir public_html
用於: server config, virtual host
狀態(tài): 基礎(chǔ)
模組: mod_userdir

UserDir 這個指令設(shè)定在使用者自家(home)目錄里的一個真實目錄,當(dāng)
接收到一個對使用者文件所發(fā)出的請求時會使用這個目錄。 Directory
可以是 Disable ,用來關(guān)掉這項特色,或者是一個目錄的名稱。如果
沒有關(guān)掉,那麼以 http://myserver/~unix-username 作為開始的一個
URL 請求將會被轉(zhuǎn)換成以 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 這個文件里,而且依預(yù)設(shè)不會編譯進(jìn)
去。它提供使用 DBM 文件做使用者驗認(rèn)的功能。參閱 DBM 的使用者
文件。


5.1.1 AuthDbmGroupFile

語法: AuthDBMGroupFile 文件名稱
用於: directory, .htaccess
需求: AuthConfig
狀態(tài): 擴充
模組: mod_auth_dbm

AuthDBMGroupFile 這個文件設(shè)定作為驗認(rèn)用的 DBM 文件名稱,其中
包含使用者群組的列表。文件名稱是該群組文件的絕對路徑。

這個文件是以使用者名稱作為關(guān)鍵。而使用者後的值則是該使用者所屬
群組的列表,以逗點分隔。此值不能有空白,而且不能包含冒號。

安全: 確定 AuthDBMGroupFile 存放在服務(wù)器的文件樹之外;不要把它
放在它所要保護(hù)的目錄里。否則客戶端將能下載 AuthDBMGroupFile 。

參閱 AuthName, AuthType 以及 AuthDBMUserFile 。





標(biāo)簽:APACHE(5)