Apache HTTP 伺服器版本 2.4
configure
指令碼設定原始碼樹,以便在特定平台編譯和安裝 Apache HTTP 伺服器。您可以使用多種選項編譯符合個人需求的伺服器。
此指令碼包含於原始碼發行版的根目錄中,僅供在 Unix 及類 Unix 系統編譯。如需其他平台,請參閱 平台 文件。
您應該從發行版的根目錄呼叫 configure
指令碼。
./configure [選項]... [變數=值]...
若要指定環境變數(例如 CC
、CFLAGS
等),請將其指定為 變數=值
。請參閱 下方,以了解一些有用的變數說明。
以下選項影響 configure
本身的行為。
-C
--config-cache
--cache-file=config.cache
的別名--cache-file=檔案
-h
--help [簡短 |遞迴]
簡短
時,只會顯示特定於此套件的選項。引數 遞迴
會顯示所有包含套件的簡短說明。-n
--no-create
configure
指令碼會正常執行,但不會建立輸出檔案。這有助於在產生編譯用的 makefile 之前查看測試結果。-q
--quiet
檢查中...
訊息。--srcdir=目錄
configure
所在的目錄,或其父目錄。--silent
--quiet
相同這些選項定義安裝目錄。安裝樹狀結構取決於選取的佈局。
--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
檔案包含幾個範例設定檔,您也可以建立自己的自訂設定檔,並依循範例來操作。此檔案中的不同佈局會分組到 <Layout FOO>...</Layout>
區段內,並就像 FOO
一樣稱呼它們的名稱。預設的佈局為 Apache
。如需更進一步地調整安裝目錄,請使用下列選項。請注意目錄預設值是由 autoconf
設定,並會被對應的佈局設定覆寫。
--bindir=DIR
htpasswd
、dbmmanage
等等,它們對網站管理員很有用。預設值下,DIR 會設定為 EPREFIX/bin
。--datadir=DIR
datadir
會設定為 PREFIX/share
。這個選項是由 autoconf
提供,目前並未被使用。--includedir=DIR
includedir
會設定為 EPREFIX/include
。--infodir=DIR
infodir
會設定為 PREFIX/info
。此選項目前並未被使用。--libdir=DIR
libdir
會設定為 EPREFIX/lib
。--libexecdir=DIR
libexecdir
會設定為 EPREFIX/modules
。--localstatedir=DIR
localstatedir
會設定為 PREFIX/var
。這個選項是由 autoconf
提供,目前並未被使用。--mandir=DIR
mandir
會設定為 EPREFIX/man
。--oldincludedir=目錄
oldincludedir
設定為 /usr/include
。此選項由 autoconf
提供,目前並未採用。--sbindir=目錄
httpd
、apachectl
、suexec
等,這些程式是執行 Apache HTTP Server 所需。預設情況下,sbindir
會設定為 EPREFIX/sbin
。--sharedstatedir=目錄
sharedstatedir
設定為 PREFIX/com
。此選項由 autoconf
提供,目前並未採用。--sysconfdir=目錄
httpd.conf
、mime.types
等) 安裝至 目錄。預設情況下,sysconfdir
會設定為 PREFIX/conf
。這些選項用於交叉編譯 Apache HTTP Server,以在其他系統執行。在一般情況下,當在同一系統編譯及執行伺服器時,並不會使用這些選項。
--build=建立
config.guess
的結果而定。--host=主機
--target=目標
autoconf
提供,Apache HTTP Server 並不需要使用此選項。這些選項用來微調 HTTP 伺服器的功能。
您通常可以使用下列語法來啟用或停用某項功能
--disable-功能
--enable-功能=否
。--enable-功能[=參數]
是
。--enable-模組=共用
--enable-模組=靜態
configure
即使在 foo 不存在的情況下,也不會針對 --enable-foo
發出警告訊息,因此您必須小心輸入。大部分模組會在預設情況下編譯,並且必須明確停用或使用關鍵字 few
(詳見下方的 --enable-modules
、--enable-mods-shared
與 --enable-mods-static
以取得更多說明),或使用 --enable-modules=none
以群組方式移除。
預設情況下,其他模組不會編譯,且必須明確啟用或使用關鍵字all
或reallyall
才能使用。
若要找出預設編譯的模組,請執行./configure -h
或./configure --help
,並在Optional Features
底下查看。假設你對mod_example1
和mod_example2
有興趣,你會看到
Optional Features: ... --disable-example1 example module 1 --enable-example2 example module 2 ...
那麼mod_example1
預設已啟用,且你會使用--disable-example1
不要編譯它。mod_example2
預設已停用,且你會使用--enable-example2
編譯它。
多處理模組,或 MPM,實作伺服器基本行為。伺服器要運作,單一 MPM 必須啟用。可用 MPM 的清單顯示在模組索引頁面。
MPM 可以建構為供動態載入的 DSO 或與伺服器靜態連結,且使用下列選項啟用
--with-mpm=MPM
為你的伺服器選擇預設的 MPM。如果 MPM 建構為 DSO 模組(見--enable-mpms-shared
),這項指令會選取會在預設組態檔中載入的 MPM。否則,這項指令會選取唯一可用的 MPM,該 MPM 會靜態連結到伺服器。
如果略過這項選項,將使用預設的 MPM給你的作業系統。
--enable-mpms-shared=MPM-LIST
將 MPM 清單啟用成動態共用模組。這些模組中的其中一個必須使用LoadModule
指令動態載入。
MPM-LIST是由引號括住、以空白分隔的 MPM 名稱清單。例如
--enable-mpms-shared='prefork worker'
此外,你可以使用特殊關鍵字all
,這將會選取在目前平台上支援動態載入的所有 MPM 並將其建構為 DSO 模組。例如
--enable-mpms-shared=all
若要新增額外的第三方模組,請使用下列選項
--with-module=module-type:module-file[, module-type:module-file]
在靜態連結模組清單中新增一個或多個第三方模組。模組原始檔module-file
將會在 Apache HTTP 伺服器原始樹的modules/module-type
子目錄內搜尋。如果在此找不到,configure
會將module-file視為絕對檔案路徑,並嘗試將原始檔複製到module-type子目錄。如果子目錄不存在,將會建立並填入標準的Makefile.in
。
這項選項對於新增僅由一個原始檔組成的外部模組很有用。對於較複雜的模組,你應該閱讀供應商的說明文件。
apxs
。--enable-maintainer-mode
--enable-mods-shared=<var>模組清單</var>
定義要啟用及建置為動態共用模組的模組清單。意即這些模組必須使用 LoadModule
指令動態載入。
<var>模組清單</var> 是以引號括住的,空白分隔的模組名稱清單。模組名稱不包含前置的 mod_
。例如
--enable-mods-shared='headers rewrite dav'
此外,也可以使用特殊關鍵字 reallyall
、all
、most
和 few
。例如:
--enable-mods-shared=most
將編譯大多數模組並將它們建置為 DSO 模組,
--enable-mods-shared=few
將只編譯一組非常基本的模組。
預設設定為 most
。
所選模組的 LoadModule
指令將自動產生於主設定檔中。預設情況下,除了必要模組或明確選用經過設定 --enable-foo
參數的模組以外,所有那些指令都將註解掉。您可以透過在 httpd.conf
中啟用或停用 LoadModule
指令來變更載入的模組組。此外,所有建置模組的 LoadModule
指令可透過設定選項 --enable-load-all-modules
啟用。
--enable-mods-static=<var>模組清單</var>
--enable-mods-shared
,但會以靜態方式連結指定的模組。意即在執行 httpd
時,這些模組將始終存在。它們不需要透過 LoadModule
載入。--enable-modules=<var>模組清單</var>
--enable-mods-shared
,它也會動態連結指定的模組。特殊關鍵字 none
會停用所有模組的建置。--enable-v4-mapped
--with-port=<var>埠</var>
httpd
將在上面監聽的埠。此埠號用於產生設定檔 httpd.conf
時。預設值為 80。--with-program-name
httpd
。這些選項用於定義選用套件。
一般來說,您可以使用下列語法定義選用套件
--with-<var>套件</var>[=<var>參數</var>]
yes
。--without-<var>套件</var>
--with-<var>套件</var>=no
相同。autoconf 提供此選項,但對 Apache HTTP Server 來說並不太好用。--with-apr=<var>目錄</var>|<var>檔案</var>
configure
apr-config
腳本的途徑。您可以設定絕對路徑和名稱或已安裝 APR 的目錄。apr-config
必須存在於此目錄或子目錄 bin
中。--with-apr-util=DIR|FILE
configure
apu-config
腳本的途徑。您可以設定絕對路徑和名稱或已安裝 APU 的目錄。apu-config
必須存在於此目錄或子目錄 bin
中。--with-ssl=DIR
mod_ssl
已啟用,configure
會搜尋已安裝的 OpenSSL。不過,您可以改設為 SSL/TLS 工具組的目錄路徑。--with-z=DIR
configure
會自動搜尋已安裝的 zlib
函式庫(例如,當 mod_deflate
啟用時)。不過,您可以改設為壓縮函式庫的目錄路徑。包含 mod_authn_dbm
和 mod_rewrite
的 DBM RewriteMap
在內的 Apache HTTP Server 的數項功能會使用簡單的鍵/值資料庫來快速查找資訊。SDBM 內建於 APU,所以這個資料庫隨時可用。如果您想使用其他的資料庫類型,請使用下列選項進行啟用
--with-gdbm[=path]
configure
會在一般搜尋路徑中搜尋 GNU DBM 安裝的包含檔案和函式庫。明確的 path 會使 configure
在 path/lib
和 path/include
中尋找相關檔案。最後,path 可以指定用冒號分隔的特定包含和函式庫路徑。--with-ndbm[=path]
--with-gdbm
,但會搜尋 New DBM 安裝。--with-berkeley-db[=path]
--with-gdbm
,但會搜尋 Berkeley DB 安裝。DBM 選項由 APU 提供,並且傳遞到其設定腳本。這些選項在使用由 --with-apr-util
所定義的已安裝 APU 時沒有用。
您可以同時與您的 HTTP 伺服器一起使用多個 DBM 實作。每次會在執行階段設定中設定適當的 DBM 類型。
--enable-static-support
--enable-suexec
suexec
,它允許你設定衍生程序的 uid 和 gid。在你無法了解在伺服器上執行 suid 二進位系統的所有安全風險前,請勿使用此選項。進一步設定 suexec
的選項詳情說明請見 以下說明。使用下列選項,你可以建立單一支援程式之靜態連結的二進位系統
--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
的靜態連結版本。suexec
組態選項以下選項是用來微調 suexec
的行為。有關進一步的資訊,請見 設定並安裝 suEXEC。
--with-suexec-bin
suexec
二進位系統的路徑。預設值為 --sbindir
(請見 安裝目錄的微調)。--with-suexec-caller
suexec
的使用者。它應該與通常執行 httpd
的使用者相同。--with-suexec-docroot
suexec
允許執行檔存取的目錄樹。預設值為 --datadir/htdocs
。--with-suexec-gidmin
suexec
針對使用者允許的最低 GID。預設值為 100。--with-suexec-logfile
suexec
日誌檔的檔名。預設情況下,日誌檔命名為 suexec_log
,並位於 --logfiledir
中。--with-suexec-safepath
PATH
的值,由 suexec
所啟動程序設定。預設值為 /usr/local/bin:/usr/bin:/bin
。--with-suexec-userdir
suexec
存取的可執行檔的子目錄。在您想將 suexec
與使用者特定目錄搭配使用時需要此設定(由 mod_userdir
提供)。預設為 public_html
。--with-suexec-uidmin
suexec
的目標使用者的最低 UID。預設值為 100。--with-suexec-umask
suexec
啟動的程序的 umask
。它的預設值為您的系統設定。有些有用的環境變數可覆寫 configure
所做的選擇,或協助其找到具有非標準名稱或位置的函式庫與程式。
CC
CFLAGS
CPP
CPPFLAGS
-Iincludedir
,如果您在非標準目錄 includedir 中有標頭檔。LDFLAGS
-Llibdir
,如果您在非標準目錄 libdir 中有函式庫。