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
下一篇 2017-04-22

相關推薦

  • 腳本編程之循環:for,while,until

    shell中的循環語句一般有: for   while   until 一、for     for 變量名 in 列表;do         循環體     d…

    Linux干貨 2016-08-18
  • Nginx七層反代服務器 (Blog 20)

    http反代、fastcgi反代

    Linux干貨 2017-12-20
  • N28-第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。
    2、取出最后登錄到當前系統的用戶的相關信息。
    3、取出當前系統上被用戶當作其默認shell的最多的那個shell。
    4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。
    5、取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
    6、列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf文件中。
    7、顯示/var目錄下一級子目錄或文件的總個數。
    8、取出/etc/group文件中第三個字段數值最小的10個組的名字。
    9、將/etc/fstab和/etc/issue文件的內容合并為同一個內容后保存至/tmp/etc.test文件中。
    10、請總結描述用戶和組管理類命令的使用方法并完成以下練習:
    (1)、創建組distro,其GID為2016;
    (2)、創建用戶mandriva, 其ID號為1005;基本組為distro;
    (3)、創建用戶mageia,其ID號為1100,家目錄為/home/linux;
    (4)、給用戶mageia添加密碼,密碼為mageedu;
    (5)、刪除mandriva,但保留其家目錄;
    (6)、創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin;
    (7)、修改slackware的默認shell為/bin/tcsh;
    (8)、為用戶slackware新增附加組admins;

    2017-12-17
  • CentOS7下利用rsyslog+loganalyzer配置日志服務器及Linux和windows客戶端配置

    隨著機房內的服務器和網絡設備增加,日志管理和查詢就成了讓系統管理員頭疼的事。 系統管理員遇到的常見問題如下: 1、日常維護過程中不可能登錄到每一臺服務器和設備上去查看日志; 2、網絡設備上的存儲空間有限,不可能存儲日期太長的日志,而系統出現問題又有可能是很久以前發生的某些操作造成的; 3、在某些非法入侵的情況下,入侵者一般都會清除本地日志…

    2017-03-15
  • 第八周作業

    shell腳本簡用

    Linux干貨 2017-11-27

評論列表(1條)

  • renjin
    renjin 2017-04-28 10:50

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

欧美性久久久久