Apache 編譯安裝(linux)

2021-10-13 18:18 更新

本文檔僅涵蓋在 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>

快速入門

在 Fedora/CentOS/Red Hat Enterprise Linux 上安裝
sudo yum install httpd 
sudo systemctl enable httpd 
sudo systemctl start httpd
這些發(fā)行版的較新版本使用 dnf而不是yum. 有關(guān)特定于平臺的說明,請參閱Fedora 項目的文檔。
在 Ubuntu/Debian 上安裝
sudo apt install apache2 
sudo service apache2 start
有關(guān)特定于平臺的說明,請參閱Ubuntu 的文檔。
從源安裝
下載http://httpd.apache.org/download.cgi下載最新版本
解壓縮$ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar
$ cd httpd-NN
配置$ ./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 存在以下要求:

APR 和 APR-Util
確保您的系統(tǒng)上已經(jīng)安裝了 APR 和 APR-Util。如果您不這樣做,或者不想使用系統(tǒng)提供的版本,請從Apache APR下載 APR 和 APR-Util 的最新版本,將它們解壓到/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)建。
Perl 兼容的正則表達式庫 (PCRE)
這個庫是必需的,但不再與 httpd 捆綁在一起。從http://www.pcre.org下載源代碼,或安裝 Port 或 Package。如果您的構(gòu)建系統(tǒng)找不到 PCRE 構(gòu)建安裝的 pcre-config 腳本,請使用--with-pcre參數(shù)指向它。在某些平臺上,您可能必須安裝相應(yīng)的-dev 軟件包才能允許 httpd 針對您安裝的 PCRE 副本進行構(gòu)建。
磁盤空間
確保您至少有 50 MB 的可用臨時可用磁盤空間。安裝后,服務(wù)器占用大約 10 MB 的磁盤空間。根據(jù)您選擇的配置選項、任何第三方模塊,當(dāng)然還有您在服務(wù)器上擁有的一個或多個網(wǎng)站的大小,實際的磁盤空間要求會有很大差異。
ANSI-C 編譯器和構(gòu)建系統(tǒng)
確保安裝了 ANSI-C 編譯器。如果您沒有 GCC,那么至少要確保您的供應(yīng)商的編譯器符合 ANSI。此外,您PATH必須包含基本的構(gòu)建工具,例如make.
準確計時
HTTP 協(xié)議的元素表示為一天中的時間。因此,是時候研究在您的系統(tǒng)上設(shè)置一些時間同步工具了。通常 基于網(wǎng)絡(luò)時間協(xié)議 (NTP) 的程序ntpdatexntpd程序用于此目的。有關(guān) NTP 軟件和公共時間服務(wù)器的更多詳細信息,請參閱NTP 主頁。
Perl 5 [可選]
對于某些支持腳本,例如apxsdbmmanage(用 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)。但是,您需要熟悉特定平臺的包管理和安裝過程。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號