本文檔僅涵蓋在 Unix 和類 Unix 系統(tǒng)上編譯和安裝 Apache HTTP Server。有關(guān)在 Windows 上編譯和安裝的信息,請參閱在 Microsoft Windows 中使用 Apache HTTP Server和為 Microsoft Windows 編譯 Apache。對于其他平臺,請前往官網(wǎng)查看官網(wǎng)介紹
Apache httpd 使用libtool并autoconf 創(chuàng)建一個看起來像許多其他開源項目的構(gòu)建環(huán)境。
如果您要從一個次要版本升級到下一個(例如,2.4.8 到 2.4.9),請?zhí)缴壊糠帧?/p>
sudo yum install httpd sudo systemctl enable httpd sudo systemctl start httpd
這些發(fā)行版的較新版本使用dnf
而不是yum
. 有關(guān)特定于平臺的說明,請參閱Fedora 項目的文檔。
sudo apt install apache2 sudo service apache2 start
有關(guān)特定于平臺的說明,請參閱Ubuntu 的文檔。
下載 | 從http://httpd.apache.org/download.cgi下載最新版本 |
解壓縮 | $ gzip -d httpd-NN.tar.gz |
配置 | $ ./configure --prefix=PREFIX |
編譯 | $ make |
安裝 | $ make install |
定制 | $ vi PREFIX/conf/httpd.conf |
測試 | $ PREFIX/bin/apachectl -k start |
NN必須替換為當(dāng)前版本號,并且PREFIX必須替換為服務(wù)器安裝所在的文件系統(tǒng)路徑。如果 未指定PREFIX,則默認為 /usr/local/apache2
。
下面更詳細地描述編譯安裝過程的每個部分,從編譯安裝Apache httpd的要求開始。
構(gòu)建 Apache httpd 存在以下要求:
/httpd_source_tree_root/srclib/apr
和/httpd_source_tree_root/srclib/apr-util
(確保目錄名稱沒有版本號;例如,APR 發(fā)行版必須在 /httpd_source_tree_root/srclib/apr/) 下并使用 ./configure
's--with-included-apr
選項。在某些平臺上,您可能必須安裝相應(yīng)的-dev
軟件包才能允許 httpd 針對您安裝的 APR 和 APR-Util 副本進行構(gòu)建。--with-pcre
參數(shù)指向它。在某些平臺上,您可能必須安裝相應(yīng)的-dev
軟件包才能允許 httpd 針對您安裝的 PCRE 副本進行構(gòu)建。PATH
必須包含基本的構(gòu)建工具,例如make
.ntpdate
或xntpd
程序用于此目的。有關(guān) NTP 軟件和公共時間服務(wù)器的更多詳細信息,請參閱NTP 主頁。apxs
或dbmmanage
(用 Perl 編寫的),需要 Perl 5 解釋器(版本 5.003 或更新版本就足夠了)。如果configure
腳本未找到 Perl 5 解釋器 ,您將無法使用受影響的支持腳本。當(dāng)然,您仍然可以構(gòu)建和使用 Apache httpd。Apache HTTP Server 可以從Apache HTTP Server 下載站點 下載,其中列出了幾個鏡像。大多數(shù)在類 Unix 系統(tǒng)上使用 Apache 的用戶最好下載和編譯源版本。構(gòu)建過程(如下所述)很簡單,它允許您自定義服務(wù)器以滿足您的需求。此外,二進制版本通常不是最新的源版本。如果您確實下載了二進制文件,請按照INSTALL.bindist發(fā)行版內(nèi)文件中的說明進行操作。
下載后,請務(wù)必確認您擁有完整且未經(jīng)修改的 Apache HTTP Server 版本。這可以通過針對 PGP 簽名測試下載的 tarball 來完成。下載頁面上提供了有關(guān)如何執(zhí)行此操作的詳細信息,并提供了描述PGP 使用的擴展示例。
從 Apache HTTP Server tarball 中提取源代碼很簡單,只需解壓縮,然后解壓:
$ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar?
這將在包含分發(fā)源代碼的當(dāng)前目錄下創(chuàng)建一個新目錄。在繼續(xù)編譯服務(wù)器之前,您應(yīng)該 使用cd進入該目錄。
下一步是為您的特定平臺和個人需求配置 Apache 源代碼樹。這是使用configure包含在發(fā)行版根目錄中的腳本完成的。(開發(fā)者下載Apache源代碼樹的未發(fā)行的版本將需要有 autoconf和libtool安裝將需要運行buildconf下一個步驟之前,這是沒有必要的官方版本。)
要使用所有默認選項配置源樹,只需鍵入./configure. 要更改默認選項,configure接受各種變量和命令行選項。
最重要的選項是--prefix 稍后安裝 Apache的位置,因為必須配置 Apache 才能使該位置正常工作。使用附加配置選項可以對文件位置進行更精細的控制。
此時,您還可以通過啟用和禁用模塊來指定要包含在 Apache 中的功能。默認情況下,Apache 附帶了廣泛的模塊。它們將被編譯為 可在運行時加載或卸載的共享對象 (DSO)。您還可以選擇使用選項靜態(tài)編譯模塊 。--enable-module=static
使用該選項啟用其他模塊 ,其中 模塊是刪除字符串并將任何下劃線轉(zhuǎn)換為破折號的模塊的名稱 。同樣,您可以使用該選項禁用模塊 。使用這些選項時要小心,因為如果您指定的模塊不存在,則無法警告您;它會簡單地忽略該選項。--enable-modulemod_--disable-moduleconfigure
此外,有時需要為 configure腳本提供有關(guān)編譯器、庫或頭文件位置的額外信息。這是通過將環(huán)境變量或命令行選項傳遞給configure. 有關(guān)更多信息,請參閱 configure手冊頁?;蛘?a rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" >configure使用--help選項調(diào)用 。
為了簡要了解您擁有的可能性,這里是一個典型示例,它/sw/pkg/apache使用特定的編譯器和標(biāo)志以及兩個附加模塊為安裝樹編譯 Apachemod_ldap和 mod_lua:
$ CC="pgcc" CFLAGS="-O2" \./configure --prefix=/sw/pkg/apache \--enable-ldap=shared \--enable-lua=shared
當(dāng)configure運行它需要幾分鐘的時間,用于測試稍后將用于編譯服務(wù)器系統(tǒng),并構(gòu)建Makefile文件對功能的可用性。
手冊頁configure上提供了所有不同選項的詳細信息configure。
現(xiàn)在,您只需運行以下命令即可構(gòu)建構(gòu)成 Apache 包的各個部分:
?$ make
?
請耐心等待,因為基本配置需要幾分鐘的時間來編譯,而且時間會因您的硬件和啟用的模塊數(shù)量而有很大差異。
現(xiàn)在是時候通過運行在配置的安裝PREFIX(見--prefix上面的選項)下安裝包:
?$ make install
?
此步驟通常需要 root 權(quán)限,因為 PREFIX通常是具有受限寫入權(quán)限的目錄。
如果您正在升級,安裝不會覆蓋您的配置文件或文檔。
接下來,您可以通過編輯自定義您的Apache HTTP服務(wù)器的配置文件下 PREFIX/conf/。
$ vi PREFIX/conf/httpd.conf
查看 Apache 手冊 PREFIX/docs/manual/或查閱http://httpd.apache.org/docs/2.4/以獲得本手冊的最新版本和可用配置指令的完整參考。
現(xiàn)在您可以通過運行下面代碼來啟動您的 Apache HTTP 服務(wù)器:
?$ PREFIX/bin/apachectl -k start
?
然后您應(yīng)該能夠通過 URL 請求您的第一個文檔http://localhost/。您看到的網(wǎng)頁位于?DocumentRoot
?下,通常是?PREFIX/htdocs/
?。然后通過運行下面代碼可以停止服務(wù)器:
?$ PREFIX/bin/apachectl -k stop
?
升級的第一步是閱讀發(fā)布公告和CHANGES源代碼分發(fā)中的文件,以查找可能影響您站點的任何更改。在主要版本之間進行更改時(例如,從 2.0 到 2.2 或從 2.2 到 2.4),編譯時和運行時配置可能存在重大差異,需要手動調(diào)整。所有模塊也需要升級以適應(yīng)模塊 API 的變化。
從一個次要版本升級到下一個(例如,從 2.2.55 到 2.2.57)更容易。該make install 過程不會覆蓋您現(xiàn)有的任何文檔、日志文件或配置文件。此外,開發(fā)人員會盡一切努力避免configure次要版本之間的選項、運行時配置或模塊 API 的不兼容更改 。在大多數(shù)情況下,您應(yīng)該能夠使用相同的configure命令行、相同的配置文件,并且您的所有模塊都應(yīng)該繼續(xù)工作。
要跨次要版本進行升級,請首先config.nice在build已安裝服務(wù)器的目錄中或在舊安裝的源代碼樹的根目錄中查找該文件 。這將包含configure您用于配置源樹的確切 命令行。然后要從一個版本升級到下一個版本,您只需config.nice要將文件復(fù)制到新版本的源代碼樹中,對其進行編輯以進行所需的更改,然后運行:
$ ./config.nice
$ make
$ make install
$ PREFIX/bin/apachectl -k graceful-stop
$ PREFIX/bin/apachectl -k start
在將其投入生產(chǎn)之前,您應(yīng)該始終在您的環(huán)境中測試任何新版本。例如,您可以通過使用--prefix
不同的端口(通過調(diào)整Listen
指令)在舊版本旁邊安裝和運行新版本,以在進行最終升級之前測試任何不兼容性。
您可以將其他參數(shù)傳遞給config.nice,這些參數(shù)將附加到您的原始configure 選項中:
?$ ./config.nice --prefix=/home/test/apache --with-port=90
?
大量第三方提供了他們自己的 Apache HTTP Server 打包發(fā)行版,用于安裝在特定平臺上。這包括各種 Linux 發(fā)行版、各種第三方 Windows 軟件包、Mac OS X、Solaris 等等。
我們的軟件許可證不僅允許而且鼓勵這種再分發(fā)。但是,它確實會導(dǎo)致服務(wù)器安裝的配置布局和默認值可能與文檔中所述的不同。雖然很不幸,但這種情況不太可能很快改變。
一個這些第三方分布的描述保持在HTTP服務(wù)器維基,并應(yīng)反映這些第三方發(fā)行的當(dāng)前狀態(tài)。但是,您需要熟悉特定平臺的包管理和安裝過程。
更多建議: