摘要:但是執(zhí)行這個(gè)命令后我們發(fā)現(xiàn),它會(huì)提示我們?nèi)鄙傧嚓P(guān)依賴包。通常依賴包可以通過指令直接安裝,下面是需要特殊安裝的依賴包。安裝完依賴包后,編譯就是已經(jīng)很輕松的事情了。相信很多同學(xué)都是在本地編譯,然后上傳到生產(chǎn)環(huán)境安裝的吧,所以這一點(diǎn)需要提示一下。
httpd(Apache HTTP Server) 是世界上最知名、最流行的開源Web服務(wù)器之一,它十分快速、可靠,并且功能強(qiáng)大,擁有著強(qiáng)大的社區(qū)支持。CentOS7的軟件源中自帶的apache httpd版本過于老舊,如果想要使用新版本,則不得不自行編譯。
今天我講一下如何在CentOS7中以正確的姿勢(shì)編譯httpd并打包成rpm,按照教程打包失敗可以到最后點(diǎn)網(wǎng)盤鏈接下載我編譯好的rpm包。
源碼包下載下面是一些需要用到的源碼包的下載地址,鏈接使用了bit的Apache鏡像,需要使用其他鏡像下載點(diǎn)這里。
apr-1.5.2
httpd-2.4.20
相關(guān)開發(fā)工具及依賴包安裝 安裝相關(guān)開發(fā)工具要在CentOS下編譯軟件并制作rpm包,首先就需要安裝相關(guān)的開發(fā)工具。編譯軟件可能需要用到gcc, g++等編譯器,而制作rpm則需要安裝rpmbuild,這些工具可以通過以下指令安裝:
$ sudo yum groupinstall "Development Tools" -y依賴包
打包rpm需要編寫spec文件,但是這個(gè)文件在httpd的源碼目錄中已經(jīng)給出了,所以就不需要我們自己編寫。我們可以直接通過rpmbuild -tb httpd-2.4.20.tar.bz2這個(gè)指令來通過通過源碼編譯httpd并打包成httpd。
但是執(zhí)行這個(gè)命令后我們發(fā)現(xiàn),它會(huì)提示我們?nèi)鄙傧嚓P(guān)依賴包。這些軟件包被httpd所依賴,也就是說,httpd在編譯時(shí)或者運(yùn)行時(shí)需要使用這些軟件或庫。通常依賴包可以通過yum install指令直接安裝,下面是需要特殊安裝的依賴包。
1. distcache-devel這個(gè)包有點(diǎn)古老,他在CentOS5之后似乎就被剔除出CentOS的源了,而CentOS5的老版本又不能在CentOS7上安裝。但是我們可以通過fedora18提供的src.rpm包來安裝這個(gè)包,fedora18的源已經(jīng)沒有了,但是我們可以從fedoraproject的archive源中找到它:下載地址
編譯distcache:
$ rpmbuild --rebuild --clean distcache-1.4.5-23.src.rpm
可能會(huì)提示需要安裝一些依賴包,直接使用yum指令安裝即可,那些包在源中都有。安裝完依賴后再執(zhí)行上述指令即可開始編譯。
編譯完成后我們可以在~/rpmbuild/RPMS/目錄下找到三個(gè)rpm包,分別是distcache-1.4.5-23.x86_64.rpm,distcache-debuginfo-1.4.5-23.x86_64.rpm和distcache-devel-1.4.5-23.x86_64.rpm可以通過如下指令對(duì)其進(jìn)行安裝:
$ sudo yum localinstall distcache-devel-1.4.5-23.x86_64.rpm
編譯失敗可以使用最后下載鏈接中的distcache-1.4.5.txz
2. aprapr全稱是Apache Portable Runtime,是httpd跨平臺(tái)運(yùn)行的基礎(chǔ)。CentOS7源中提供的是1.4.x的版本,雖然httpd 2.4.20要求的apr版本是大于1.4.0即可,但是我發(fā)現(xiàn)在使用小于1.5.0版本的apr時(shí),打包httpd.rpm時(shí)會(huì)提示以下錯(cuò)誤:
RPM build errors: File not found: rpmbuild/BUILDROOT/httpd-2.4.20-1.x86_64/usr/lib64/httpd/modules/mod_mpm_event.so
所以我們需要手動(dòng)編譯安裝apr的最新的1.5.2版本,編譯過程與distcache相仿,需要的依賴包也可通過yum指令直接安裝。編譯指令:
$ rpmbuild -tb apr-1.5.2.tar.bz2
然后對(duì)依賴包進(jìn)行安裝:
$ 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除了上述兩個(gè)特殊的依賴包外,httpd其他的依賴包都可以通過yum指令從源中直接安裝。安裝完依賴包后,編譯httpd就是已經(jīng)很輕松的事情了。
我們同樣可以通過下面的指令編譯httpd:
$ rpmbuild -tb httpd-2.4.20.tar.bz2
執(zhí)行完指令后可以得到下列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最新版了。
有一點(diǎn)需要注意的是,如果要在一臺(tái)新的機(jī)器上安裝httpd,也需要安裝apr的1.5.2版本,但是不需要安裝相關(guān)的devel包。相信很多同學(xué)都是在本地編譯rpm,然后上傳到生產(chǎn)環(huán)境安裝的吧,所以這一點(diǎn)需要提示一下。
參考資料CentOS7.1 64bitにApache2.4.16をRPMからインストール
httpd-2.4.18 CentOS 7 RPM build file not found: mod_mpm_event.so
相關(guān)下載文件名 | 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 |
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/35764.html
摘要:但是執(zhí)行這個(gè)命令后我們發(fā)現(xiàn),它會(huì)提示我們?nèi)鄙傧嚓P(guān)依賴包。通常依賴包可以通過指令直接安裝,下面是需要特殊安裝的依賴包。安裝完依賴包后,編譯就是已經(jīng)很輕松的事情了。相信很多同學(xué)都是在本地編譯,然后上傳到生產(chǎn)環(huán)境安裝的吧,所以這一點(diǎn)需要提示一下。 showImg(https://segmentfault.com/img/remote/1460000006768765); httpd(Apac...
摘要:最近開始學(xué)習(xí),最好的學(xué)習(xí)就是實(shí)踐,學(xué)習(xí)同時(shí)把安裝的環(huán)境搭配,跑了度娘都沒找到我想要的文章。那我就簡(jiǎn)單的寫寫我的安裝過程。使用命令查看可安裝的包。 最近開始學(xué)習(xí)linux,最好的學(xué)習(xí)就是實(shí)踐,學(xué)習(xí)linux 同時(shí)把安裝LAMP的環(huán)境搭配,跑了度娘都沒找到我想要的文章。那我就簡(jiǎn)單的寫寫我的安裝過程。 網(wǎng)絡(luò)設(shè)置 ping 114.114.114.144 網(wǎng)絡(luò)連接失敗,將虛擬機(jī)的網(wǎng)絡(luò)適配器...
閱讀 2924·2021-11-23 09:51
閱讀 3099·2021-11-15 11:39
閱讀 2979·2021-11-09 09:47
閱讀 2527·2019-08-30 13:49
閱讀 2113·2019-08-30 13:09
閱讀 3092·2019-08-29 16:10
閱讀 3504·2019-08-26 17:04
閱讀 984·2019-08-26 13:57