configure - 配置源代码树
configure腳本配置Apache的源代碼樹并且將其安裝到指定的平臺上。豐富的選項允許你根據自己的特定狀況和特定需求對Apache進行定制。
這個腳本位于源代碼樹的根目錄下,并且只能用于類Unix操作系統。要了解其他平臺的信息,參見:針對特定平臺的說明文檔。
語法
你必須在源代碼樹的根目錄下調用configure腳本,語法如下:
./configure [OPTION]... [VAR=VALUE]...
若要指定環境變量(比如:CC, CFLAGS ...),請使用 VAR=VALUE 的格式。下面有一些有用的環境變量說明。
選項
- 配置選項
- 安裝目錄
- 系統類型
- 模塊選項
- 雜項選項
- 傳遞給apr-config腳本的選項
- 特殊程序包選項
- 支持程序選項
配置選項
下列選項會影響configure腳本自身的行為。方括號"[]"內是默認值。
-C --config-cache安裝目錄
這些選項控制著安裝目錄的結構。安裝目錄的結構取決于所選擇的布局。方括號"[]"內是默認值。
--prefix=PREFIX默認情況下,make install 將會把所有文件分別安裝到/usr/local/apache2/bin , /usr/local/apache2/lib 目錄下??梢杂?--prefix 指定一個不同于/usr/local/apache2的安裝前綴,比如:--prefix=$HOME 。
定義一個目錄布局
--enable-layout=LAYOUT安裝目錄微調
可以使用下面的選項微調安裝目錄。下列選項的默認值由autoconf自動設置并在方括號"[]"內說明。
--bindir=DIR[EPREFIX/bin]
[PREFIX/share]
[EPREFIX/include]
[PREFIX/info]
[EPREFIX/lib]
[EPREFIX/libexec]
[PREFIX/var]
[EPREFIX/man]
[/usr/include]
[EPREFIX/sbin]
[PREFIX/com]
[PREFIX/etc]
系統類型
這些選項用于交叉編譯在其他平臺上運行的Apache HTTP服務器。在同一平臺上編譯和運行Apache HTTP服務器通常不需要使用這些選項,腳本會自動檢測并設置。方括號"[]"內是默認值。
--build=BUILD[config.guess腳本的檢測結果]
[BUILD]
[HOST]
模塊選項
有兩種使用模塊的方法:一是靜態連接進核心,二是作為DSO模塊動態加載;如果編譯中包含任何DSO模塊,則mod_so會被自動包含進核心。如果希望核心能夠裝載DSO,但不實際編譯任何DSO模塊,則需明確指定"--enable-so=static"。
一般語法
一般情況下你可以使用如下語法啟用或者禁用某個模塊:
--disable-MODULE?
上述 MODULE-LIST 可以是:
(1)用引號界定并且用空格分隔的模塊名列表
--enable-mods-shared='headers rewrite dav'
(2)"most"(大多數模塊[遇見錯誤模塊時忽略該模塊而不中斷配置過程])
(3)"all"(所有模塊[遇見錯誤模塊時中斷配置過程并報錯])
--enable-mods-shared=most
注意
configure將忽略MODULE和MODULE-LIST中的拼寫錯誤,注意仔細拼寫。用于MODULE和MODULE-LIST中的名稱是"mod_NAME"中去掉"mod_"并將剩余部分中的下劃線"_"替換為連字符"-"以后的結果,比如"mod_log_config"模塊應當表示為"log-config"。模塊列表
基本(B)模塊默認包含,必須明確禁用;擴展(E)/實驗(X)模塊默認不包含,必須明確啟用。
| 模塊名稱 | 狀態 | 簡要描述 |
| mod_actions | (B) | 基于媒體類型或請求方法,為執行CGI腳本而提供 |
| mod_alias | (B) | 提供從文件系統的不同部分到文檔樹的映射和URL重定向 |
| mod_asis | (B) | 發送自己包含HTTP頭內容的文件 |
| mod_auth_basic | (B) | 使用基本認證 |
| mod_authn_default | (B) | 在未正確配置認證模塊的情況下簡單拒絕一切認證信息 |
| mod_authn_file | (B) | 使用純文本文件為認證提供支持 |
| mod_authz_default | (B) | 在未正確配置授權支持模塊的情況下簡單拒絕一切授權請求 |
| mod_authz_groupfile | (B) | 使用純文本文件為組提供授權支持 |
| mod_authz_host | (B) | 供基于主機名、IP地址、請求特征的訪問控制 |
| mod_authz_user | (B) | 基于每個用戶提供授權支持 |
| mod_autoindex | (B) | 自動對目錄中的內容生成列表,類似于"ls"或"dir"命令 |
| mod_cgi | (B) | 在非線程型MPM(prefork)上提供對CGI腳本執行的支持 |
| mod_cgid | (B) | 在線程型MPM(worker)上用一個外部CGI守護進程執行CGI腳本 |
| mod_dir | (B) | 指定目錄索引文件以及為目錄提供"尾斜杠"重定向 |
| mod_env | (B) | 允許Apache修改或清除傳送到CGI腳本和SSI頁面的環境變量 |
| mod_filter | (B) | 根據上下文實際情況對輸出過濾器進行動態配置 |
| mod_p_w_picpathmap | (B) | 處理服務器端圖像映射 |
| mod_include | (B) | 實現服務端包含文檔(SSI)處理 |
| mod_isapi | (B) | 僅限于在Windows平臺上實現ISAPI擴展 |
| mod_log_config | (B) | 允許記錄日志和定制日志文件格式 |
| mod_mime | (B) | 根據文件擴展名決定應答的行為(處理器/過濾器)和內容(MIME類型/語言/字符集/編碼) |
| mod_negotiation | (B) | 提供內容協商支持 |
| mod_nw_ssl | (B) | 僅限于在NetWare平臺上實現SSL加密支持 |
| mod_setenvif | (B) | 根據客戶端請求頭字段設置環境變量 |
| mod_status | (B) | 生成描述服務器狀態的Web頁面 |
| mod_userdir | (B) | 允許用戶從自己的主目錄中提供頁面(使用"/~username") |
| mod_auth_digest | (X) | 使用MD5摘要認證(更安全,但是只有最新的瀏覽器才支持) |
| mod_authn_alias | (E) | 基于實際認證支持者創建擴展的認證支持者,并為它起一個別名以便于引用 |
| mod_authn_anon | (E) | 提供匿名用戶認證支持 |
| mod_authn_dbd | (E) | 使用SQL數據庫為認證提供支持 |
| mod_authn_dbm | (E) | 使用DBM數據庫為認證提供支持 |
| mod_authnz_ldap | (E) | 允許使用一個LDAP目錄存儲用戶名和密碼數據庫來執行基本認證和授權 |
| mod_authz_dbm | (E) | 使用DBM數據庫文件為組提供授權支持 |
| mod_authz_owner | (E) | 基于文件的所有者進行授權 |
| mod_cache | (E) | 基于URI鍵的內容動態緩沖(內存或磁盤) |
| mod_cern_meta | (E) | 允許Apache使用CERN httpd元文件,從而可以在發送文件時對頭進行修改 |
| mod_charset_lite | (X) | 允許對頁面進行字符集轉換 |
| mod_dav | (E) | 允許Apache提供DAV協議支持 |
| mod_dav_fs | (E) | 為mod_dav訪問服務器上的文件系統提供支持 |
| mod_dav_lock | (E) | 為mod_dav鎖定服務器上的文件提供支持 |
| mod_dbd | (E) | 管理SQL數據庫連接,為需要數據庫功能的模塊提供支持 |
| mod_deflate | (E) | 壓縮發送給客戶端的內容 |
| mod_disk_cache | (E) | 基于磁盤的緩沖管理器 |
| mod_dumpio | (E) | 將所有I/O操作轉儲到錯誤日志中 |
| mod_echo | (X) | 一個很簡單的協議演示模塊 |
| mod_example | (X) | 一個很簡單的Apache模塊API演示模塊 |
| mod_expires | (E) | 允許通過配置文件控制HTTP的"Expires:"和"Cache-Control:"頭內容 |
| mod_ext_filter | (E) | 使用外部程序作為過濾器 |
| mod_file_cache | (X) | 提供文件描述符緩存支持,從而提高Apache性能 |
| mod_headers | (E) | 允許通過配置文件控制任意的HTTP請求和應答頭信息 |
| mod_ident | (E) | 實現RFC1413規定的ident查找 |
| mod_info | (E) | 生成Apache配置情況的Web頁面 |
| mod_ldap | (E) | 為其它LDAP模塊提供LDAP連接池和結果緩沖服務 |
| mod_log_forensic | (E) | 實現"對比日志",即在請求被處理之前和處理完成之后進行兩次記錄 |
| mod_logio | (E) | 對每個請求的輸入/輸出字節數以及HTTP頭進行日志記錄 |
| mod_mem_cache | (E) | 基于內存的緩沖管理器 |
| mod_mime_magic | (E) | 通過讀取部分文件內容自動猜測文件的MIME類型 |
| mod_proxy | (E) | 提供HTTP/1.1的代理/網關功能支持 |
| 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) | 一個基于一定規則的實時重寫URL請求的引擎 |
| mod_so | (E) | 允許運行時加載DSO模塊 |
| mod_speling | (E) | 自動糾正URL中的拼寫錯誤 |
| mod_ssl | (E) | 使用安全套接字層(SSL)和傳輸層安全(TLS)協議實現高強度加密傳輸 |
| mod_suexec | (E) | 使用與調用web服務器的用戶不同的用戶身份來運行CGI和SSI程序 |
| mod_unique_id | (E) | 為每個請求生成唯一的標識以便跟蹤 |
| mod_usertrack | (E) | 使用Session跟蹤用戶(會發送很多Cookie),以記錄用戶的點擊流 |
| mod_version | (E) | 提供基于版本的配置段支持 |
| mod_vhost_alias | (E) | 提供大批量虛擬主機的動態配置支持 |
多路處理模塊(MPM)
必須有而且只能有一個MPM被靜態包含進核心,你可以使用下面的配置選項進行選擇:
--with-mpm=MPM第三方模塊
有至少兩種方法可以添加第三方模塊,最簡單的方法是作為配置參數提供,語法如下:
--with-module=module-type:module-file[, module-type:module-file]module-file是模塊的源代碼文件名,該文件必須位于Apahe源代碼目錄樹的"modules/module-type"目錄下,如果configure沒有在那里找到module-file ,則將它看作一個絕對路徑名并嘗試將其復制到"modules/module-type"目錄中,如果"modules/module-type"目錄不存在,configure將新建一個"modules/module-type"目錄并在其中放置一個標準的Makefile.in文件。這種方法有兩個明顯的缺陷:
?
所以一般并不使用此方法,而是使用apxs(Apache擴展工具)來添加第三方模塊支持。
雜項選項
--enable-nonportable-atomics傳遞給apr-config腳本的選項
譯者注:下述三個選項并未出現在官方手冊中,譯者不保證其真實性,譯者本人亦未使用過,僅供有興趣的玩家參考。
--disable-threads特殊程序包選項
這些指令用于定義特殊程序包相關的選項。
--with-apr=DIR|FILE一些Apache模塊,比如mod_authn_dbm和mod_rewrite需要使用DBM數據庫,APU中已經包含了SDBM ,所以這個數據庫總是可用的。如果你想使用其他類型的數據庫,就要使用以下選項:
--with-gdbm[=path]注意
DBM數據庫選項是由APU提供并傳遞給APU配置腳本的。所以如果使用 --with-apr-util 指定一個已安裝的APU來代替,那么這些選項便無效。你可以同時使用幾種不同的DBM實現,然后使用運行時配置動態選擇其中之一。
支持程序選項
--enable-static-supportsuexec配置選項
--enable-suexec僅在啟用了上述選項的情況下,才可以使用以下選項微調suexec的各種特性。方括號"[]"內是默認值。參見配置和安裝suEXEC以獲得更多信息。
--with-suexec-bin環境變量
可以通過指定某些環境變量來修改configure腳本的默認選擇,或者幫助configure腳本找到名字和/或位置不標準的庫和程序。
CC文章出自:http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/programs/configure.html#installationdirectories
轉載于:https://blog.51cto.com/angf2/393228
總結
以上是生活随笔為你收集整理的configure - 配置源代码树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FastCGI模块(FastCGI)
- 下一篇: Git和Repo扫盲——如何取得Andr