新聞中心
本文檔僅涵蓋在 Unix 和類 Unix 系統(tǒng)上編譯和安裝 Apache HTTP Server。有關在 Windows 上編譯和安裝的信息,請參閱在 Microsoft Windows 中使用 Apache HTTP Server和為 Microsoft Windows 編譯 Apache。對于其他平臺,請前往官網(wǎng)查看官網(wǎng)介紹

Apache httpd 使用libtool并autoconf 創(chuàng)建一個看起來像許多其他開源項目的構建環(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. 有關特定于平臺的說明,請參閱Fedora 項目的文檔。 - 在 Ubuntu/Debian 上安裝
-
sudo apt install apache2 sudo service apache2 start
有關特定于平臺的說明,請參閱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 startNN必須替換為當前版本號,并且PREFIX必須替換為服務器安裝所在的文件系統(tǒng)路徑。如果 未指定PREFIX,則默認為
/usr/local/apache2。下面更詳細地描述編譯安裝過程的每個部分,從編譯安裝Apache httpd的要求開始。
要求
構建 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選項。在某些平臺上,您可能必須安裝相應的
-dev軟件包才能允許 httpd 針對您安裝的 APR 和 APR-Util 副本進行構建。 - Perl 兼容的正則表達式庫 (PCRE)
-
這個庫是必需的,但不再與 httpd 捆綁在一起。從 http://www.pcre.org下載源代碼,或安裝 Port 或 Package。如果您的構建系統(tǒng)找不到 PCRE 構建安裝的 pcre-config 腳本,請使用
--with-pcre參數(shù)指向它。在某些平臺上,您可能必須安裝相應的
-dev軟件包才能允許 httpd 針對您安裝的 PCRE 副本進行構建。 - 磁盤空間
- 確保您至少有 50 MB 的可用臨時可用磁盤空間。安裝后,服務器占用大約 10 MB 的磁盤空間。根據(jù)您選擇的配置選項、任何第三方模塊,當然還有您在服務器上擁有的一個或多個網(wǎng)站的大小,實際的磁盤空間要求會有很大差異。
- ANSI-C 編譯器和構建系統(tǒng)
-
確保安裝了 ANSI-C 編譯器。如果您沒有 GCC,那么至少要確保您的供應商的編譯器符合 ANSI。此外,您
PATH必須包含基本的構建工具,例如
make. - 準確計時
-
HTTP 協(xié)議的元素表示為一天中的時間。因此,是時候研究在您的系統(tǒng)上設置一些時間同步工具了。通常 基于網(wǎng)絡時間協(xié)議 (NTP) 的程序
ntpdate或
xntpd程序用于此目的。有關 NTP 軟件和公共時間服務器的更多詳細信息,請參閱 NTP 主頁。 - Perl 5 [可選]
-
對于某些支持腳本,例如
apxs或
dbmmanage(用 Perl 編寫的),需要 Perl 5 解釋器(版本 5.003 或更新版本就足夠了)。如果
configure腳本未找到 Perl 5 解釋器 ,您將無法使用受影響的支持腳本。當然,您仍然可以構建和使用 Apache httpd。
下載
Apache HTTP Server 可以從Apache HTTP Server 下載站點 下載,其中列出了幾個鏡像。大多數(shù)在類 Unix 系統(tǒng)上使用 Apache 的用戶最好下載和編譯源版本。構建過程(如下所述)很簡單,它允許您自定義服務器以滿足您的需求。此外,二進制版本通常不是最新的源版本。如果您確實下載了二進制文件,請按照INSTALL.bindist發(fā)行版內(nèi)文件中的說明進行操作。
下載后,請務必確認您擁有完整且未經(jīng)修改的 Apache HTTP Server 版本。這可以通過針對 PGP 簽名測試下載的 tarball 來完成。下載頁面上提供了有關如何執(zhí)行此操作的詳細信息,并提供了描述PGP 使用的擴展示例。
解壓縮
從 Apache HTTP Server tarball 中提取源代碼很簡單,只需解壓縮,然后解壓:
$ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar?這將在包含分發(fā)源代碼的當前目錄下創(chuàng)建一個新目錄。在繼續(xù)編譯服務器之前,您應該 使用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腳本提供有關編譯器、庫或頭文件位置的額外信息。這是通過將環(huán)境變量或命令行選項傳遞給configure. 有關更多信息,請參閱 configure手冊頁?;蛘遚onfigure使用--help選項調(diào)用 。
為了簡要了解您擁有的可能性,這里是一個典型示例,它/sw/pkg/apache使用特定的編譯器和標志以及兩個附加模塊為安裝樹編譯 Apachemod_ldap和 mod_lua:
$ CC="pgcc" CFLAGS="-O2" \./configure --prefix=/sw/pkg/apache \--enable-ldap=shared \--enable-lua=shared
當configure運行它需要幾分鐘的時間,用于測試稍后將用于編譯服務器系統(tǒng),并構建Makefile文件對功能的可用性。
手冊頁configure上提供了所有不同選項的詳細信息configure。
編譯
現(xiàn)在,您只需運行以下命令即可構建構成 Apache 包的各個部分:
?$ make?
請耐心等待,因為基本配置需要幾分鐘的時間來編譯,而且時間會因您的硬件和啟用的模塊數(shù)量而有很大差異。
安裝
現(xiàn)在是時候通過運行在配置的安裝PREFIX(見--prefix上面的選項)下安裝包:
?$ make install?
此步驟通常需要 root 權限,因為 PREFIX通常是具有受限寫入權限的目錄。
如果您正在升級,安裝不會覆蓋您的配置文件或文檔。
定制
接下來,您可以通過編輯自定義您的Apache HTTP服務器的配置文件下 PREFIX/conf/。
$ vi PREFIX/conf/httpd.conf
查看 Apache 手冊 PREFIX/docs/manual/或查閱http://httpd.apache.org/docs/2.4/以獲得本手冊的最新版本和可用配置指令的完整參考。
測試
現(xiàn)在您可以通過運行下面代碼來啟動您的 Apache HTTP 服務器:
?$ PREFIX/bin/apachectl -k start?
然后您應該能夠通過 URL 請求您的第一個文檔http://localhost/。您看到的網(wǎng)頁位于?DocumentRoot?下,通常是?PREFIX/htdocs/?。然后通過運行下面代碼可以停止服務器:
?$ PREFIX/bin/apachectl -k stop?
升級
升級的第一步是閱讀發(fā)布公告和CHANGES源代碼分發(fā)中的文件,以查找可能影響您站點的任何更改。在主要版本之間進行更改時(例如,從 2.0 到 2.2 或從 2.2 到 2.4),編譯時和運行時配置可能存在重大差異,需要手動調(diào)整。所有模塊也需要升級以適應模塊 API 的變化。
從一個次要版本升級到下一個(例如,從 2.2.55 到 2.2.57)更容易。該make install 過程不會覆蓋您現(xiàn)有的任何文檔、日志文件或配置文件。此外,開發(fā)人員會盡一切努力避免configure次要版本之間的選項、運行時配置或模塊 API 的不兼容更改 。在大多數(shù)情況下,您應該能夠使用相同的configure命令行、相同的配置文件,并且您的所有模塊都應該繼續(xù)工作。
要跨次要版本進行升級,請首先config.nice在build已安裝服務器的目錄中或在舊安裝的源代碼樹的根目錄中查找該文件 。這將包含configure您用于配置源樹的確切 命令行。然后要從一個版本升級到下一個版本,您只需config.nice要將文件復制到新版本的源代碼樹中,對其進行編輯以進行所需的更改,然后運行:
$ ./config.nice
$ make
$ make install
$ PREFIX/bin/apachectl -k graceful-stop
$ PREFIX/bin/apachectl -k start在將其投入生產(chǎn)之前,您應該始終在您的環(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ā)。但是,它確實會導致服務器安裝的配置布局和默認值可能與文檔中所述的不同。雖然很不幸,但這種情況不太可能很快改變。
一個這些第三方分布的描述保持在HTTP服務器維基,并應反映這些第三方發(fā)行的當前狀態(tài)。但是,您需要熟悉特定平臺的包管理和安裝過程。
標題名稱:創(chuàng)新互聯(lián)apache教程:Apache 編譯安裝(linux)
文章起源:http://www.fisionsoft.com.cn/article/djjeiij.html


咨詢
建站咨詢
