CentOS7編譯安裝Apache Httpd 2.4.20及rpm包製做小記

httpd(Apache HTTP Server) 是世界上最知名、最流行的開源Web服務器之一,它十分快速、可靠,而且功能強大,擁有着強大的社區支持。CentOS7的軟件源中自帶的apache httpd版本過於老舊,若是想要使用新版本,則不得不自行編譯。html

今天我講一下如何在CentOS7中以正確的姿式編譯httpd並打包成rpm,按照教程打包失敗能夠到最後點網盤連接下載我編譯好的rpm包。linux

源碼包下載

下面是一些須要用到的源碼包的下載地址,連接使用了bit的Apache鏡像,須要使用其餘鏡像下載點這裏web

相關開發工具及依賴包安裝

安裝相關開發工具

要在CentOS下編譯軟件並製做rpm包,首先就須要安裝相關的開發工具。編譯軟件可能須要用到gcc, g++等編譯器,而製做rpm則須要安裝rpmbuild,這些工具能夠經過如下指令安裝:bash

$ sudo yum groupinstall "Development Tools" -y

依賴包

打包rpm須要編寫spec文件,可是這個文件在httpd的源碼目錄中已經給出了,因此就不須要咱們本身編寫。咱們能夠直接經過rpmbuild -tb httpd-2.4.20.tar.bz2這個指令來經過經過源碼編譯httpd並打包成httpd。服務器

可是執行這個命令後咱們發現,它會提示咱們缺乏相關依賴包。這些軟件包被httpd所依賴,也就是說,httpd在編譯時或者運行時須要使用這些軟件或庫。一般依賴包能夠經過yum install指令直接安裝,下面是須要特殊安裝的依賴包。工具

1. distcache-devel

這個包有點古老,他在CentOS5以後彷佛就被剔除出CentOS的源了,而CentOS5的老版本又不能在CentOS7上安裝。可是咱們能夠經過fedora18提供的src.rpm包來安裝這個包,fedora18的源已經沒有了,可是咱們能夠從fedoraproject的archive源中找到它:下載地址開發工具

編譯distcache:ui

$ rpmbuild --rebuild --clean distcache-1.4.5-23.src.rpm

可能會提示須要安裝一些依賴包,直接使用yum指令安裝便可,那些包在源中都有。安裝完依賴後再執行上述指令便可開始編譯。

編譯完成後咱們能夠在~/rpmbuild/RPMS/目錄下找到三個rpm包,分別是distcache-1.4.5-23.x86_64.rpm,distcache-debuginfo-1.4.5-23.x86_64.rpmdistcache-devel-1.4.5-23.x86_64.rpm能夠經過以下指令對其進行安裝:

$ sudo yum localinstall distcache-devel-1.4.5-23.x86_64.rpm

編譯失敗可使用最後下載連接中的distcache-1.4.5.txz

2. apr

apr全稱是Apache Portable Runtime,是httpd跨平臺運行的基礎。CentOS7源中提供的是1.4.x的版本,雖然httpd 2.4.20要求的apr版本是大於1.4.0便可,可是我發如今使用小於1.5.0版本的apr時,打包httpd.rpm時會提示如下錯誤:

RPM build errors:
    File not found: rpmbuild/BUILDROOT/httpd-2.4.20-1.x86_64/usr/lib64/httpd/modules/mod_mpm_event.so

因此咱們須要手動編譯安裝apr的最新的1.5.2版本,編譯過程與distcache相仿,須要的依賴包也可經過yum指令直接安裝。編譯指令:

$ rpmbuild -tb apr-1.5.2.tar.bz2

而後對依賴包進行安裝:

$ sudo yum localinstall apr-1.5.2-1.x86_64.rpm apr-devel-1.5.2-1.x86_64.rpm

編譯失敗能夠見最後下載連接中的apr-1.5.2.txz

編譯httpd

除了上述兩個特殊的依賴包外,httpd其餘的依賴包均可以經過yum指令從源中直接安裝。安裝完依賴包後,編譯httpd就是已經很輕鬆的事情了。

咱們一樣能夠經過下面的指令編譯httpd:

$ rpmbuild -tb httpd-2.4.20.tar.bz2

執行完指令後能夠獲得下列rpm包:

  • httpd-2.4.20-1.x86_64.rpm

  • httpd-debuginfo-2.4.20-1.x86_64.rpm

  • httpd-devel-2.4.20-1.x86_64.rpm

  • httpd-manual-2.4.20-1.x86_64.rpm

  • httpd-tools-2.4.20-1.x86_64.rpm

  • mod_authnz_ldap-2.4.20-1.x86_64.rpm

  • mod_lua-2.4.20-1.x86_64.rpm

  • mod_proxy_html-2.4.20-1.x86_64.rpm

  • mod_socache_dc-2.4.20-1.x86_64.rpm

  • mod_ssl-2.4.20-1.x86_64.rpm

而後咱們就能夠經過yum localinstall指令愉快的安裝httpd最新版了。

有一點須要注意的是,若是要在一臺新的機器上安裝httpd,也須要安裝apr的1.5.2版本,可是不須要安裝相關的devel包。相信不少同窗都是在本地編譯rpm,而後上傳到生產環境安裝的吧,因此這一點須要提示一下。

參考資料

相關下載

文件名 SHA256 分享連接 提取碼
apr-1.5.2.txz 49c40369f41e068fcb75a0bcb8d722b3b9e438fe619870bc418b9e7fba352b4c https://yunpan.cn/cSHIgwqA2pAqR 8fff
distcache-1.4.5.txz 4eb956ff51fa85e29322d66403e63f9ee890e3818aa098bec89c026f6fa500a9 https://yunpan.cn/cSHIkmAzVuU7E ab55
httpd-2.4.20.txz 2962da8ae640e0108b7b165d32aabec933c892e0554c245068bb5574be7b9948 https://yunpan.cn/cSHI8BQMiS5nw 7b18

相關文章
相關標籤/搜索