centos7源碼編譯安裝Apache2.4.25服務

?一、源碼包下載

?二、安裝開發環境以及編譯環境

?三、編譯安裝以及報錯排查

?四、調試Apache服務


前言:

本文主要介紹了在Centos7環境中如何通過源碼編譯的方式安裝Apache服務(也就是我們的httpd服務)由于本文整理時間有限,所以難免有些紕漏之處,歡迎大家在閱讀后在評論區指出,本人看到會在第一時間修改文中錯誤的地方。

為什么要進行源碼編譯安裝

一般來說,我們軟件的安裝方式有yum(rpm),和源碼編譯兩種方式,那么為什么我們需要源碼編譯安裝一部分軟件?選擇源碼編譯安裝軟件有以下幾個原因: 1:滿足不同的運行平臺,我們Linux發型版本眾多,但是每個版本采用的軟件或者內核版本都不一樣,而我們的二進制包所依賴的環境不一定能夠正常運行,所以大部分軟件直接提供源碼! 2:方便定制,滿足不同的需求,很多時候我們所需要的軟件都是可以定制的,我需要什么就安裝什么,大多數二進制代碼都是一鍵裝全,所以自由度并不高! 3:方便運維、開發人員維護,我們的源碼是可以打包二進制的,但是對于這個軟件的打包都會有一份代價不小的額外工作,包括維護,所以如果是源碼的話,軟件產商會直接維護,但是如果是二進制的話,一般都是Linux發行商提供!

一、Apache源碼包下載

1:如何下載源碼包

為了線上環境的安全,我強烈建議各位不要隨便去網上搜索出來某個源碼包就進行編譯安裝,正確的姿勢是去它的官網去下載,當然下載之后為了安全起見同時也不要忘記校驗它的貞操(MD5和SHA1校驗碼)。httpd服務官網地址:https://httpd.apache.org/如下圖
centos7源碼編譯安裝Apache2.4.25服務 
 如果覺得這樣比較繁瑣還可以通過wget命令進行下載

wget http://httpd-mirror.frgl.pw/apache//httpd/httpd-2.4.25.tar.bz2 “通過wget下載Apache的源碼包”

centos7源碼編譯安裝Apache2.4.25服務


二、安裝開發環境以及編譯環境

工欲善其事必先利其器,所以我們要想編譯安裝軟件必須要具備開發環境。這里我將直接通過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值”

centos7源碼編譯安裝Apache2.4.25服務

經過對比兩個值相同,證明該源碼包的貞操依在可以放心使用。

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端口的服務已經可以正常訪問
centos7源碼編譯安裝Apache2.4.25服務 
2、Apache安裝完成需要注意的地方

ps -aux | grep apache //源碼編譯apache,運行用戶為deamon

centos7源碼編譯安裝Apache2.4.25服務 
id daemon //編譯安裝運行用戶身份是daemon 
useradd -M -s /sbin/nologin apache //創建一個用戶用來運行apache 
vim /etc/httpd2.4/httpd.conf //修改配置文件改變apache運行身份

centos7源碼編譯安裝Apache2.4.25服務

User apache #運行用戶 Group apache #運行組,創建apache的時候已經即時創建了apache這個組 

id apache //顯示我們剛才新建的apache用戶的信息 
chown -R apache:apache /app/httpd2.4/ //默認是root,改為apache 
ps -aux | grep httpd 查看是否為apache用戶身份運行httpd服務

centos7源碼編譯安裝Apache2.4.25服務

原創文章,作者:谷歌 shark,如若轉載,請注明出處:http://www.www58058.com/74011

(1)
谷歌 shark谷歌 shark
上一篇 2017-04-22 19:44
下一篇 2017-04-22 21:41

相關推薦

  • iptables

      iptables(1) Firewall:隔離工具;Packets Filter Firewall;工作于主機或網絡的邊緣,對經由的報文根據預先定義的規則(匹配條件) 進行檢測,對于能夠被規則匹配到的報文實行某預定義的處理機制的一套組件;     硬件防火墻:在硬件級別實現部分功能的防…

    Linux干貨 2016-11-01
  • 文件系統知一二

    文件系統知一二 What?文件系統是什么?     我們經常說文件系統,那么文件系統是什么東西呢?    計算機的文件系統是一種存儲和組織計算機數據的組織結構。 常見的文件系統有哪些?           &n…

    Linux干貨 2016-03-09
  • Linux systemd管理

                                                      &nbsp…

    系統運維 2016-09-28
  • 磁盤管理之文件系統及管理工具

    磁盤管理之文件系統及管理工具    我們在之前的文章中講到了硬盤的MBR與GPT分區,我們這篇文章來講一下怎么使用工具對硬盤進行分區,硬盤的分區有什么區別,以及分區的管理。 管理分區   首先我們來看一下分區。那么什么是分區呢?簡單的比喻一下,硬盤就像一個大房子,那么在向房間里放東西(比如家具)之前,它需要有一定的結構…

    Linux干貨 2016-08-30
  • 運維的危險命令,用了必死(1)

    Linux命令行佷有用、很高效,也很有趣,但有時候也很危險,尤其是在你不確定你自己在正在做什么時候。這篇文章并不打算引來你對Linux或linux 命令行的憤怒。我們只是想讓你意識到在你運行某些命令時應該三思而后行。(譯注:當然,以下命令通常都是在root權限下才能將愚蠢發揮到無可救藥;在普通用戶身份下,破壞的只是自己的一畝三分地。)

    2017-11-16
  • Linux cluster集群全講解

    ? ? ? ? ? ? ? ? ?Linux cluster集群 Linux cluster(集群): cluster:計算機組合,為解決某個特定問題組合起來形成的單個系統; ? Linux Cluster類型: ???LB:Load Balancing,負載均衡; ???HA:High Availiablity,高可用; ???A=MTBF(平均無故障時長…

    2016-11-18

評論列表(1條)

  • renjin
    renjin 2017-04-28 10:50

    詳細的介紹了linux下的編譯安裝使用,內容及排版都特別精細,非常好的一篇博客,博客數量上可以再增加一些了!

欧美性久久久久