Apache HTTP Server 版本2.2
configure
腳本配置Apache的源代碼樹并且將其安裝到指定的平臺(tái)上。豐富的選項(xiàng)允許你根據(jù)自己的特定狀況和特定需求對(duì)Apache進(jìn)行定制。
這個(gè)腳本位于源代碼樹的根目錄下,并且只能用于類Unix操作系統(tǒng)。要了解其他平臺(tái)的信息,參見(jiàn):針對(duì)特定平臺(tái)的說(shuō)明文檔。
你必須在源代碼樹的根目錄下調(diào)用configure
腳本,語(yǔ)法如下:
./configure [OPTION]...
[VAR=VALUE]...
若要指定環(huán)境變量(比如:CC
, CFLAGS
...),請(qǐng)使用 VAR=VALUE
的格式。下面有一些有用的環(huán)境變量說(shuō)明。
apr-config
腳本的選項(xiàng)下列選項(xiàng)會(huì)影響configure
腳本自身的行為。方括號(hào)"[]"內(nèi)是默認(rèn)值。
-C
--config-cache
--cache-file=config.cache
--cache-file=FILE
-h
--help [short|recursive]
short
參數(shù)將只顯示正在運(yùn)行的當(dāng)前腳本的選項(xiàng),而不能列出適用于Apache配置腳本所運(yùn)行的外部配置腳本的選項(xiàng)。使用recursive
參數(shù)將顯示所有程序包的簡(jiǎn)短描述。-n
--no-create
configure
腳本運(yùn)行結(jié)束后不輸出結(jié)果文件,常用于正式編譯前的測(cè)試。-q
--quiet
checking ...
"消息。--srcdir=DIR
--silent
--quiet
這些選項(xiàng)控制著安裝目錄的結(jié)構(gòu)。安裝目錄的結(jié)構(gòu)取決于所選擇的布局。方括號(hào)"[]"內(nèi)是默認(rèn)值。
--prefix=PREFIX
/usr/local/apache2
]--exec-prefix=EPREFIX
默認(rèn)情況下,make install
將會(huì)把所有文件分別安裝到/usr/local/apache2/bin
, /usr/local/apache2/lib
目錄下?梢杂 --prefix
指定一個(gè)不同于/usr/local/apache2
的安裝前綴,比如:--prefix=$HOME
。
--enable-layout=LAYOUT
config.layout
文件中包含了默認(rèn)布局的示例,你可以根據(jù)它創(chuàng)建你自己的布局。這個(gè)文件中的不同布局使用<Layout FOO>...</Layout>
段進(jìn)行分組,其中的FOO
就是布局名。默認(rèn)的布局是Apache
。可以使用下面的選項(xiàng)微調(diào)安裝目錄。下列選項(xiàng)的默認(rèn)值由autoconf
自動(dòng)設(shè)置并在方括號(hào)"[]"內(nèi)說(shuō)明。
--bindir=DIR
htpasswd
, dbmmanage
之類的支持程序。EPREFIX/bin
]--datadir=DIR
autoconf
提供了該選項(xiàng),但Apache并未使用它。PREFIX/share
]--includedir=DIR
EPREFIX/include
]--infodir=DIR
autoconf
提供了該選項(xiàng),但Apache并未使用它。PREFIX/info
]--libdir=DIR
EPREFIX/lib
]--libexecdir=DIR
EPREFIX/libexec
]--localstatedir=DIR
autoconf
提供了該選項(xiàng),但Apache并未使用它。PREFIX/var
]--mandir=DIR
EPREFIX/man
]--oldincludedir=DIR
autoconf
提供了該選項(xiàng),但Apache并未使用它。/usr/include
]--sbindir=DIR
httpd
, apachectl
, suexec
之類的服務(wù)程序。EPREFIX/sbin
]--sharedstatedir=DIR
autoconf
提供了該選項(xiàng),但Apache并未使用它。PREFIX/com
]--sysconfdir=DIR
httpd.conf
和mime.types
之類的服務(wù)器配置文件。PREFIX/etc
]這些選項(xiàng)用于交叉編譯在其他平臺(tái)上運(yùn)行的Apache HTTP服務(wù)器。在同一平臺(tái)上編譯和運(yùn)行Apache HTTP服務(wù)器通常不需要使用這些選項(xiàng),腳本會(huì)自動(dòng)檢測(cè)并設(shè)置。方括號(hào)"[]"內(nèi)是默認(rèn)值。
--build=BUILD
config.guess
腳本的檢測(cè)結(jié)果]--host=HOST
--target=TARGET
autoconf
提供了該選項(xiàng),但Apache并未使用它。有兩種使用模塊的方法:一是靜態(tài)連接進(jìn)核心,二是作為DSO模塊動(dòng)態(tài)加載;如果編譯中包含任何DSO模塊,則mod_so會(huì)被自動(dòng)包含進(jìn)核心。如果希望核心能夠裝載DSO,但不實(shí)際編譯任何DSO模塊,則需明確指定"--enable-so=static"。
一般情況下你可以使用如下語(yǔ)法啟用或者禁用某個(gè)模塊:
--disable-MODULE
--enable-MODULE=shared
--enable-MODULE=static
--enable-mods-shared=MODULE-LIST
--enable-modules=MODULE-LIST
上述 MODULE-LIST 可以是:
(1)用引號(hào)界定并且用空格分隔的模塊名列表
--enable-mods-shared='headers rewrite dav'
(2)"most
"(大多數(shù)模塊) (3)"all
"(所有模塊)
--enable-mods-shared=most
configure
將忽略MODULE和MODULE-LIST中的拼寫錯(cuò)誤,注意仔細(xì)拼寫。用于MODULE和MODULE-LIST中的名稱是"mod_NAME
"中去掉"mod_
"并將剩余部分中的下劃線"_
"替換為連字符"-
"以后的結(jié)果,比如"mod_log_config
"模塊應(yīng)當(dāng)表示為"log-config"。
基本(B)模塊默認(rèn)包含,必須明確禁用;擴(kuò)展(E)/實(shí)驗(yàn)(X)模塊默認(rèn)不包含,必須明確啟用。
模塊名稱 | 狀態(tài) | 簡(jiǎn)要描述 |
mod_actions | (B) | 基于媒體類型或請(qǐng)求方法,為執(zhí)行CGI腳本而提供 |
mod_alias | (B) | 提供從文件系統(tǒng)的不同部分到文檔樹的映射和URL重定向 |
mod_asis | (B) | 發(fā)送自己包含HTTP頭內(nèi)容的文件 |
mod_auth_basic | (B) | 使用基本認(rèn)證 |
mod_authn_default | (B) | 在未正確配置認(rèn)證模塊的情況下簡(jiǎn)單拒絕一切認(rèn)證信息 |
mod_authn_file | (B) | 使用純文本文件為認(rèn)證提供支持 |
mod_authz_default | (B) | 在未正確配置授權(quán)支持模塊的情況下簡(jiǎn)單拒絕一切授權(quán)請(qǐng)求 |
mod_authz_groupfile | (B) | 使用純文本文件為組提供授權(quán)支持 |
mod_authz_host | (B) | 供基于主機(jī)名、IP地址、請(qǐng)求特征的訪問(wèn)控制 |
mod_authz_user | (B) | 基于每個(gè)用戶提供授權(quán)支持 |
mod_autoindex | (B) | 自動(dòng)對(duì)目錄中的內(nèi)容生成列表,類似于"ls"或"dir"命令 |
mod_cgi | (B) | 在非線程型MPM(prefork )上提供對(duì)CGI腳本執(zhí)行的支持 |
mod_cgid | (B) | 在線程型MPM(worker )上用一個(gè)外部CGI守護(hù)進(jìn)程執(zhí)行CGI腳本 |
mod_dir | (B) | 指定目錄索引文件以及為目錄提供"尾斜杠"重定向 |
mod_env | (B) | 允許Apache修改或清除傳送到CGI腳本和SSI頁(yè)面的環(huán)境變量 |
mod_filter | (B) | 根據(jù)上下文實(shí)際情況對(duì)輸出過(guò)濾器進(jìn)行動(dòng)態(tài)配置 |
mod_imagemap | (B) | 處理服務(wù)器端圖像映射 |
mod_include | (B) | 實(shí)現(xiàn)服務(wù)端包含文檔(SSI)處理 |
mod_isapi | (B) | 僅限于在Windows平臺(tái)上實(shí)現(xiàn)ISAPI擴(kuò)展 |
mod_log_config | (B) | 允許記錄日志和定制日志文件格式 |
mod_mime | (B) | 根據(jù)文件擴(kuò)展名決定應(yīng)答的行為(處理器/過(guò)濾器)和內(nèi)容(MIME類型/語(yǔ)言/字符集/編碼) |
mod_negotiation | (B) | 提供內(nèi)容協(xié)商支持 |
mod_nw_ssl | (B) | 僅限于在NetWare平臺(tái)上實(shí)現(xiàn)SSL加密支持 |
mod_setenvif | (B) | 根據(jù)客戶端請(qǐng)求頭字段設(shè)置環(huán)境變量 |
mod_status | (B) | 生成描述服務(wù)器狀態(tài)的Web頁(yè)面 |
mod_userdir | (B) | 允許用戶從自己的主目錄中提供頁(yè)面(使用"/~username") |
mod_auth_digest | (X) | 使用MD5摘要認(rèn)證(更安全,但是只有最新的瀏覽器才支持) |
mod_authn_alias | (E) | 基于實(shí)際認(rèn)證支持者創(chuàng)建擴(kuò)展的認(rèn)證支持者,并為它起一個(gè)別名以便于引用 |
mod_authn_anon | (E) | 提供匿名用戶認(rèn)證支持 |
mod_authn_dbd | (E) | 使用SQL數(shù)據(jù)庫(kù)為認(rèn)證提供支持 |
mod_authn_dbm | (E) | 使用DBM數(shù)據(jù)庫(kù)為認(rèn)證提供支持 |
mod_authnz_ldap | (E) | 允許使用一個(gè)LDAP目錄存儲(chǔ)用戶名和密碼數(shù)據(jù)庫(kù)來(lái)執(zhí)行基本認(rèn)證和授權(quán) |
mod_authz_dbm | (E) | 使用DBM數(shù)據(jù)庫(kù)文件為組提供授權(quán)支持 |
mod_authz_owner | (E) | 基于文件的所有者進(jìn)行授權(quán) |
mod_cache | (E) | 基于URI鍵的內(nèi)容動(dòng)態(tài)緩沖(內(nèi)存或磁盤) |
mod_cern_meta | (E) | 允許Apache使用CERN httpd元文件,從而可以在發(fā)送文件時(shí)對(duì)頭進(jìn)行修改 |
mod_charset_lite | (X) | 允許對(duì)頁(yè)面進(jìn)行字符集轉(zhuǎn)換 |
mod_dav | (E) | 允許Apache提供DAV協(xié)議支持 |
mod_dav_fs | (E) | 為mod_dav 訪問(wèn)服務(wù)器上的文件系統(tǒng)提供支持 |
mod_dav_lock | (E) | 為mod_dav 鎖定服務(wù)器上的文件提供支持 |
mod_dbd | (E) | 管理SQL數(shù)據(jù)庫(kù)連接,為需要數(shù)據(jù)庫(kù)功能的模塊提供支持 |
mod_deflate | (E) | 壓縮發(fā)送給客戶端的內(nèi)容 |
mod_disk_cache | (E) | 基于磁盤的緩沖管理器 |
mod_dumpio | (E) | 將所有I/O操作轉(zhuǎn)儲(chǔ)到錯(cuò)誤日志中 |
mod_echo | (X) | 一個(gè)很簡(jiǎn)單的協(xié)議演示模塊 |
mod_example | (X) | 一個(gè)很簡(jiǎn)單的Apache模塊API演示模塊 |
mod_expires | (E) | 允許通過(guò)配置文件控制HTTP的"Expires: "和"Cache-Control: "頭內(nèi)容 |
mod_ext_filter | (E) | 使用外部程序作為過(guò)濾器 |
mod_file_cache | (X) | 提供文件描述符緩存支持,從而提高Apache性能 |
mod_headers | (E) | 允許通過(guò)配置文件控制任意的HTTP請(qǐng)求和應(yīng)答頭信息 |
mod_ident | (E) | 實(shí)現(xiàn)RFC1413規(guī)定的ident查找 |
mod_info | (E) | 生成Apache配置情況的Web頁(yè)面 |
mod_ldap | (E) | 為其它LDAP模塊提供LDAP連接池和結(jié)果緩沖服務(wù) |
mod_log_forensic | (E) | 實(shí)現(xiàn)"對(duì)比日志",即在請(qǐng)求被處理之前和處理完成之后進(jìn)行兩次記錄 |
mod_logio | (E) | 對(duì)每個(gè)請(qǐng)求的輸入/輸出字節(jié)數(shù)以及HTTP頭進(jìn)行日志記錄 |
mod_mem_cache | (E) | 基于內(nèi)存的緩沖管理器 |
mod_mime_magic | (E) | 通過(guò)讀取部分文件內(nèi)容自動(dòng)猜測(cè)文件的MIME類型 |
mod_proxy | (E) | 提供HTTP/1.1的代理/網(wǎng)關(guān)功能支持 |
mod_proxy_ajp | (E) | mod_proxy 的擴(kuò)展,提供Apache JServ Protocol支持 |
mod_proxy_balancer | (E) | mod_proxy 的擴(kuò)展,提供負(fù)載平衡支持 |
mod_proxy_connect | (E) | mod_proxy 的擴(kuò)展,提供對(duì)處理HTTP CONNECT 方法的支持 |
mod_proxy_ftp | (E) | mod_proxy 的FTP支持模塊 |
mod_proxy_http | (E) | mod_proxy 的HTTP支持模塊 |
mod_rewrite | (E) | 一個(gè)基于一定規(guī)則的實(shí)時(shí)重寫URL請(qǐng)求的引擎 |
mod_so | (E) | 允許運(yùn)行時(shí)加載DSO模塊 |
mod_speling | (E) | 自動(dòng)糾正URL中的拼寫錯(cuò)誤 |
mod_ssl | (E) | 使用安全套接字層(SSL)和傳輸層安全(TLS)協(xié)議實(shí)現(xiàn)高強(qiáng)度加密傳輸 |
mod_suexec | (E) | 使用與調(diào)用web服務(wù)器的用戶不同的用戶身份來(lái)運(yùn)行CGI和SSI程序 |
mod_unique_id | (E) | 為每個(gè)請(qǐng)求生成唯一的標(biāo)識(shí)以便跟蹤 |
mod_usertrack | (E) | 使用Session跟蹤用戶(會(huì)發(fā)送很多Cookie),以記錄用戶的點(diǎn)擊流 |
mod_version | (E) | 提供基于版本的配置段支持 |
mod_vhost_alias | (E) | 提供大批量虛擬主機(jī)的動(dòng)態(tài)配置支持 |
必須有而且只能有一個(gè)MPM被靜態(tài)包含進(jìn)核心,你可以使用下面的配置選項(xiàng)進(jìn)行選擇:
--with-mpm=MPM
MPM
是你想要使用的多路處理模塊的名字。如果你不使用這個(gè)選項(xiàng),那么將會(huì)使用對(duì)應(yīng)于各平臺(tái)的默認(rèn)MPM,可選的MPM如下:beos
, mpmt_os2
, prefork
, worker
有至少兩種方法可以添加第三方模塊,最簡(jiǎn)單的方法是作為配置參數(shù)提供,語(yǔ)法如下:
--with-module=module-type:module-file[, module-type:module-file]
module-file
是模塊的源代碼文件名,該文件必須位于Apahe源代碼目錄樹的"modules/module-type
"目錄下,如果configure
沒(méi)有在那里找到module-file ,則將它看作一個(gè)絕對(duì)路徑名并嘗試將其復(fù)制到"modules/module-type
"目錄中,如果"modules/module-type
"目錄不存在,configure
將新建一個(gè)"modules/module-type
"目錄并在其中放置一個(gè)標(biāo)準(zhǔn)的Makefile.in
文件。這種方法有兩個(gè)明顯的缺陷:
所以一般并不使用此方法,而是使用apxs
(Apache擴(kuò)展工具)來(lái)添加第三方模塊支持。
--enable-nonportable-atomics
--enable-v4-mapped
--disable-v4-mapped
--enable-maintainer-mode
--enable-exception-hook
EnableExceptionHook
指令--with-port=PORT
httpd
的默認(rèn)的監(jiān)聽端口[默認(rèn)為:80],該值僅在生成默認(rèn)配置文件httpd.conf
時(shí)使用。--with-program-name=NAME
httpd
],若使用此選項(xiàng)則默認(rèn)配置文件的名字將同時(shí)變成"NAME.conf"。apr-config
腳本的選項(xiàng)譯者注:下述三個(gè)選項(xiàng)并未出現(xiàn)在官方手冊(cè)中,譯者不保證其真實(shí)性,譯者本人亦未使用過(guò),僅供有興趣的玩家參考。
--disable-threads
--disable-ipv6
--disable-dso
這些指令用于定義特殊程序包相關(guān)的選項(xiàng)。
--with-apr=DIR|FILE
apr-config
腳本的路徑?梢允褂么四_本的絕對(duì)路徑或已有的APR安裝目錄(apr-config
必須位于此目錄或者其下的"bin
"子目錄中)。--with-apr-util=DIR|FILE
apu-config
腳本的路徑。可以使用此腳本的絕對(duì)路徑或已有的APU安裝目錄(apu-config
必須位于此目錄或者其下的"bin
"子目錄中)。--with-ssl=DIR
mod_ssl
,configure
腳本將會(huì)自動(dòng)搜尋已經(jīng)安裝的OpenSSL ,你可以在這里指定SSL/TLS工具包的安裝路徑。--with-z=DIR
mod_deflate
),configure
腳本將會(huì)自動(dòng)搜尋已經(jīng)安裝的zlib
庫(kù),你可以在這里指定它的安裝路徑。--with-perl=DIR
apxs
或dbmmanage
,需要Perl5解釋器(5.003或以上的版本就足夠了)。如果系統(tǒng)中存在多個(gè)Perl解釋器,比如有系統(tǒng)提供的Perl 4 ,還有你自己安裝的Perl 5 ,推薦你使用該選項(xiàng)來(lái)指定正確的版本。如果沒(méi)有Perl 5也沒(méi)關(guān)系,這并不影響Apache httpd的編譯和安裝,只是相關(guān)的支持腳本不能使用而已。--with-pcre=DIR
--with-ldap=DIR
mod_ldap
和mod_authnz_ldap
需要APU支持LDAP(默認(rèn)并不支持),只要使用其中之一,就要使用該選項(xiàng)指定LDAP的安裝路徑。一些Apache模塊,比如mod_authn_dbm
和mod_rewrite
需要使用DBM數(shù)據(jù)庫(kù),APU中已經(jīng)包含了SDBM ,所以這個(gè)數(shù)據(jù)庫(kù)總是可用的。如果你想使用其他類型的數(shù)據(jù)庫(kù),就要使用以下選項(xiàng):
--with-gdbm[=path]
configure
腳本將會(huì)在默認(rèn)路徑上搜索GNU DBM的包含文件和庫(kù)的位置。如果指定path ,則configure
腳本會(huì)在path/lib
和path/include
目錄中搜索GNU DBM的包含文件和庫(kù)。還可以使用"inc-path:lib-path"的形式分別指定GNU DBM的包含文件和庫(kù)的位置。--with-ndbm[=path]
configure
腳本將會(huì)在默認(rèn)路徑上搜索New DBM的包含文件和庫(kù)的位置。如果指定path ,則configure
腳本會(huì)在path/lib
和path/include
目錄中搜索New DBM的包含文件和庫(kù)。還可以使用"inc-path:lib-path"的形式分別指定New DBM的包含文件和庫(kù)的位置。--with-berkeley-db[=path]
configure
腳本將會(huì)在默認(rèn)路徑上搜索Berkeley DB的包含文件和庫(kù)的位置。如果指定path ,則configure
腳本會(huì)在path/lib
和path/include
目錄中搜索Berkeley DB的包含文件和庫(kù)。還可以使用"inc-path:lib-path"的形式分別指定Berkeley DB的包含文件和庫(kù)的位置。DBM數(shù)據(jù)庫(kù)選項(xiàng)是由APU提供并傳遞給APU配置腳本的。所以如果使用 --with-apr-util
指定一個(gè)已安裝的APU來(lái)代替,那么這些選項(xiàng)便無(wú)效。你可以同時(shí)使用幾種不同的DBM實(shí)現(xiàn),然后使用運(yùn)行時(shí)配置動(dòng)態(tài)選擇其中之一。
--enable-static-support
--enable-static-ab
ab
--enable-static-checkgid
checkgid
--enable-static-htdbm
htdbm
--enable-static-htdigest
htdigest
--enable-static-htpasswd
htpasswd
--enable-static-logresolve
logresolve
--enable-static-rotatelogs
rotatelogs
--enable-suexec
suexec
,它可以允許你為CGI程序指定uid和gid 。如果你不精通suexec的工作機(jī)制,請(qǐng)不要使用它!僅在啟用了上述選項(xiàng)的情況下,才可以使用以下選項(xiàng)微調(diào)suexec
的各種特性。方括號(hào)"[]"內(nèi)是默認(rèn)值。參見(jiàn)配置和安裝suEXEC以獲得更多信息。
--with-suexec-bin
suexec
二進(jìn)制文件目錄[--sbindir
]--with-suexec-caller
suexec
的用戶,必須和運(yùn)行httpd
子進(jìn)程的用戶相同。--with-suexec-docroot
suexec
對(duì)其中的文件具有執(zhí)行權(quán)限的根目錄[--datadir/htdocs
]--with-suexec-gidmin
suexec
的最小GID[100]--with-suexec-logfile
suexec
日志文件名[默認(rèn)文件名為:suexec_log
,位于--logfiledir
目錄下]--with-suexec-safepath
suexec
"安全"的PATH
環(huán)境變量的值[/usr/local/bin:/usr/bin:/bin
]--with-suexec-userdir
suexec
對(duì)其中的文件具有執(zhí)行權(quán)限的子目錄,僅在將suexec
和用戶網(wǎng)站目錄(由mod_userdir
提供支持)一起使用的情況下才需要設(shè)置此選項(xiàng)。[public_html
]--with-suexec-uidmin
suexec
的最小UID[100]--with-suexec-umask
suexec
進(jìn)程的umask
[取決于系統(tǒng)的設(shè)定]可以通過(guò)指定某些環(huán)境變量來(lái)修改configure
腳本的默認(rèn)選擇,或者幫助configure
腳本找到名字和/或位置不標(biāo)準(zhǔn)的庫(kù)和程序。
CC
CFLAGS
CPP
CPPFLAGS
-Iincludedir
"指定一個(gè)非標(biāo)準(zhǔn)的頭文件目錄includedir 。LDFLAGS
-Llibdir
"指定一個(gè)非標(biāo)準(zhǔn)的庫(kù)文件目錄libdir 。