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