?一、源碼包下載
?二、安裝開發環境以及編譯環境
?三、編譯安裝以及報錯排查
?四、調試Apache服務
前言:
本文主要介紹了在Centos7環境中如何通過源碼編譯的方式安裝Apache服務(也就是我們的httpd服務)由于本文整理時間有限,所以難免有些紕漏之處,歡迎大家在閱讀后在評論區指出,本人看到會在第一時間修改文中錯誤的地方。
為什么要進行源碼編譯安裝
一般來說,我們軟件的安裝方式有yum(rpm),和源碼編譯兩種方式,那么為什么我們需要源碼編譯安裝一部分軟件?選擇源碼編譯安裝軟件有以下幾個原因: 1:滿足不同的運行平臺,我們Linux發型版本眾多,但是每個版本采用的軟件或者內核版本都不一樣,而我們的二進制包所依賴的環境不一定能夠正常運行,所以大部分軟件直接提供源碼! 2:方便定制,滿足不同的需求,很多時候我們所需要的軟件都是可以定制的,我需要什么就安裝什么,大多數二進制代碼都是一鍵裝全,所以自由度并不高! 3:方便運維、開發人員維護,我們的源碼是可以打包二進制的,但是對于這個軟件的打包都會有一份代價不小的額外工作,包括維護,所以如果是源碼的話,軟件產商會直接維護,但是如果是二進制的話,一般都是Linux發行商提供!
一、Apache源碼包下載
1:如何下載源碼包
為了線上環境的安全,我強烈建議各位不要隨便去網上搜索出來某個源碼包就進行編譯安裝,正確的姿勢是去它的官網去下載,當然下載之后為了安全起見同時也不要忘記校驗它的貞操(MD5和SHA1校驗碼)。httpd服務官網地址:https://httpd.apache.org/如下圖
如果覺得這樣比較繁瑣還可以通過wget命令進行下載wget http://httpd-mirror.frgl.pw/apache//httpd/httpd-2.4.25.tar.bz2 “通過wget下載Apache的源碼包”
![]()
二、安裝開發環境以及編譯環境
工欲善其事必先利其器,所以我們要想編譯安裝軟件必須要具備開發環境。這里我將直接通過yum的方式安裝開發環境包組yum groupinstall “Development Tools” -y “安裝開發環境包組”
yum install make -y “安裝make編譯包”
yum -y install gcc gcc++ zlib zlib-devel “安裝編譯apache時所需要的相關軟件包”
三、編譯安裝以及報錯排查
1、首先我們要對壓縮包進行解壓 在解壓之前我個人還是習慣去校驗一下壓縮包的貞操(MD5校驗)
wget https://www.apache.org/dist/httpd/httpd-2.4.25.tar.bz2.md5“我這里直接下載源碼包的md5值到本地進行對比”
md5sum httpd-2.4.25.tar.bz2 “輸出下載的httpd源碼包的md5值”
cat httpd-2.4.25.tar.bz2.md5 “查看官網給出的安裝包md5值”
![]()
經過對比兩個值相同,證明該源碼包的貞操依在可以放心使用。
tar -xfv cat httpd-2.4.25.tar.bz2.md5 -C /usr/local/src/httpd-2.4.25/ && cd /usr/local/src/httpd-2.4.25/ “解壓文件到指定的目錄下,并且進入解壓的目錄”
2、開始編譯源碼包(切記當前目錄是在/usr/local/src/httpd-2.4.25/)
./configure –prefix=/app/httpd2.4 –sysconfdir=/etc/httpd2.4/ && make && make install
--prefix=/app/httpd2.4 #httpd服務安裝路徑 --sysconfdir=/etc/httpd2.4 #httpd服務配置文件路徑
錯誤排查
configure: error: APR not found. Please read the documentation. #apr依賴包沒有找到 解決方法 ` yum install apr-devel -y `
configure: error: APR-util not found.Please read the documentation. #apr-util依賴包沒有找到 解決辦法 ` yum install apr-util-devel -y `
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
#pcre依賴包沒有找到,如果需要pcre包可從http://pcre.org/獲取最新版本。
解決辦法 ` yum install pcre-devel -y `
注釋:通常編譯報錯提示的"xxx not found"這些都是我們安裝的軟件所依賴的包,而你的環境沒有安裝導致的錯誤,安裝即可。
而安裝這些依賴包通常都是缺少的開發包所以我這邊安裝的都是以 ` ***-devel ` 的依賴包。我啰嗦這么多是基于性能上考慮,盡量減少不必要的安裝包來減少服務器的壓力。
如果你的服務器配置夠好可以使用通配符 `yum -y install pcre* apr* ` 來解決安裝包的問題(但是不推薦這樣的方式)
3、生成Makefile文件進行make install安裝
` make -j 2 && make install ` "-j參數是加速編譯 2是調用CPU的兩個核心來編譯 make install就是把編譯好的文件進行安裝"
注釋:-j參數后面跟的數字是你的CPU可用的核心數 不能超過實際的核心數量。
make 編譯時系統默認是值是 make -j 1(所以你CPU是單核的話就不用加 -j參數了,直接make編譯就可以了,只不過花費的時候可能會長一些。)
四、調試Apache服務
1、配置Apache的啟動腳本
cp /app/httpd2.4/bin/apachectl /etc/init.d/httpd “復制啟動程序到/etc/init.d/目錄下并改名為httpd讓系統調用”
這時我們就可以使用/etc/init.d/httpd start來啟動Apache服務了
或者是下面這種寫成PATH環境變量
echo ‘PATH=$PATH:/app/httpd2.4/bin’ > /etc/profile.d/httpd.sh && source /etc/profile.d/httpd.sh#這里是將/etc/init.d/httpd直接放在了PATH變量中,然后啟用變量生效,這樣我們直接可以運行httpd start 就可以啟動服務了
` ss -tunl | grep 80 ` //查看80端口已經打開 這時打開瀏覽器訪問你的IP地址就可以看到80端口的服務已經可以正常訪問
2、Apache安裝完成需要注意的地方
ps -aux | grep apache //源碼編譯apache,運行用戶為deamon
![]()
id daemon //編譯安裝運行用戶身份是daemon
useradd -M -s /sbin/nologin apache //創建一個用戶用來運行apache
vim /etc/httpd2.4/httpd.conf //修改配置文件改變apache運行身份
![]()
User apache #運行用戶 Group apache #運行組,創建apache的時候已經即時創建了apache這個組
id apache //顯示我們剛才新建的apache用戶的信息
chown -R apache:apache /app/httpd2.4/ //默認是root,改為apache
ps -aux | grep httpd 查看是否為apache用戶身份運行httpd服務
![]()
原創文章,作者:谷歌 shark,如若轉載,請注明出處:http://www.www58058.com/74011
詳細的介紹了linux下的編譯安裝使用,內容及排版都特別精細,非常好的一篇博客,博客數量上可以再增加一些了!