一鍵編譯安裝httpd服務

一鍵編譯安裝httpd服務

背景:

httpd服務是一個常用的web服務,所以很多地方會用到,這里寫一個一鍵編譯安裝httpd服務的腳本。

環境:

系統:centos6.9和centos7.3(應該所有的6和7的版本都可以使用)

httpd源代碼版本:httpd-2.2.34.tar.bz2和httpd-2.4.27.tar.bz2 。下載網址官網:http://httpd.apache.org/

條件:已安裝yum工具。

準備編譯httpd:

當這兩個版本的源代碼下載好后,我們先將這兩個源代碼包放在一個文件夾里,這個文件夾取名為httpd。

 

#install development tools 
#安裝開發工具組包,其中-y表示當需要輸入y/n時,直接選擇y
 1 yum groupinstall -y "development tools" &> /dev/null
#這段代碼是獲取系統的主要版本號是centos6還是centos7,然后將結果放在releasever這個變量里 
 2 releasever=`cat /etc/centos-release | egrep -o " [0-9]" | cut -d" " -f2`
#在編譯安裝過程中會提示我們有些工具包沒有安裝,我們這里提前先安裝
?3 yum -y install apr-devel.x86_64 &> /dev/null
 4 yum -y install apr-util-devel.x86_64 &> /dev/null
#pcre這個包是我在centos7上測試安裝時提示我缺少的包,所以先判斷是不是centos7版本,是就安裝上
5 [ $releasever -eq 7 ] yum -y install pcre-devel.x86_64 &> /dev/null

開始編譯:

 

#先切換目錄到httpd下
 18 cd httpd  
#判斷系統主版本號,如果是7則解壓2.4版本的httpd源代碼,如果是6則解壓2.2版本的httpd源代碼 
#然后切換目錄到對應的解壓后的文件夾里
#執行configure文件,--prefix=/app/httpd22或者24是指,編譯安裝的后的文件放在哪,我們這里將所有的文件都放在了/app/httpd22里
#如果需要將不同的文件放在不同的目錄下,則需要自己添加相關參數。
 19 [ $releasever -eq 7 ] && tar -xf httpd-2.4.27.tar.bz2 && cd httpd-2.4.27 && ./configure --prefix=/app/httpd24 && make && make install
 20 [ $releasever -eq 6 ] && tar -xf httpd-2.2.34.tar.bz2 && cd httpd-2.2.34 && ./configure --prefix=/app/httpd22 && make && make install
 21 echo "#####httpd install finished####"
 22 echo "#####start config the PATH ####"
#在/etc/profile.d/目錄下寫配置文件,將httpd的啟動過路徑放在PATH變量里
?23 [ $releasever -eq 7 ] && echo 'export PATH=/app/httpd24/bin:$PATH' > /etc/profile.d/httpd.sh
 24 [ $releasever -eq 6 ] && echo 'export PATH=/app/httpd22/bin:$PATH' > /etc/profile.d/httpd.sh
#讓配置文件生效 
 25 source /etc/profile || echo "httpd.sh start failed"
#啟動httpd服務,如果失敗則輸出開啟失敗
26 apachectl start || echo "start httpd failed"
 27 echo "#####start httpd finished"
#注銷變量 
28 unset releasever

 

完整代碼:

 

  1 #!/bin/bash
  2 #install development tools 
  3 yum groupinstall -y "development tools" &> /dev/null
  4 releasever=`cat /etc/centos-release | egrep -o " [0-9]" | cut -d" " -f2`
  5 yum -y install apr-devel.x86_64 &> /dev/null
  6 yum -y install apr-util-devel.x86_64 &> /dev/null
  7 [ $releasever -eq 7 ] yum -y install pcre-devel.x86_64 &> /dev/null
  8 cd httpd  9 [ $releasever -eq 7 ] && tar -xf httpd-2.4.27.tar.bz2 && cd httpd-2.4.27 && ./configure --prefix=/app/ht    tpd24 && make && make install 10 [ $releasever -eq 6 ] && tar -xf httpd-2.2.34.tar.bz2 && cd httpd-2.2.34 && ./configure --prefix=/app/ht    tpd22 && make && make install
 11 echo "#####httpd install finished####"
 12 echo "#####start config the PATH ####"
 13 [ $releasever -eq 7 ] && echo 'export PATH=/app/httpd24/bin:$PATH' > /etc/profile.d/httpd.sh
 14 [ $releasever -eq 6 ] && echo 'export PATH=/app/httpd22/bin:$PATH' > /etc/profile.d/httpd.sh
 15 source /etc/profile || echo "httpd.sh start failed" 16 apachectl start || echo "start httpd failed"
 17 echo "#####start httpd finished"  18 unset releasever               
 18 unset releasever

安裝成功界面:

一鍵編譯安裝httpd服務

 

原創文章,作者:657188918,如若轉載,請注明出處:http://www.www58058.com/83819

(1)
657188918657188918
上一篇 2017-09-16 09:41
下一篇 2017-09-16 09:47

相關推薦

  • M20 – 1- 第二周博客(1):幫助手冊查詢的使用

    Linux系統中存在諸多的命令,而這些命令分為內鍵命令和外部命令。如何查詢命令屬于內部還是外部呢。前一篇博客已經介紹type命令,type命令可以區分命令屬于內部還是外部,下面舉個例子: 為什么這一期博客還重復講如何區分內部與外部命令呢,因為在man手冊查詢中,內部命令并不是使用man查詢幫助手冊,僅僅使用與外部命令,那內鍵命令如何查詢呢,接下來要講的就是h…

    Linux干貨 2016-08-02
  • AWK學習總結

    AWK是一種優良的文本處理工具。其名稱得自于它的創始人阿爾佛雷德·艾侯、彼得·溫伯格和布萊恩·柯林漢姓氏的首個字母。AWK提供了極其強大的功能:可以進行正則表達式的匹配,樣式裝入、流控制、數學運算符、進程控制語句甚至于內置的變量和函數。它具備了一個完整的語言所應具有的幾乎所有精美特性。 AWK學習總結 函數rand(): 函數length() 函數int()…

    Linux干貨 2016-12-03
  • N25-第一周作業

    第一周博客作業 1.描述計算機的組成及其功能 2.按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別 3.描述Linux哲學思想,并按照自己的理解對其進行解釋性描述。 4.說明Linux系統上命令的使用格式:詳細介紹,ifconfg,echo,tty,startx,export pwd,history,shutdown,poweroff,rebo…

    Linux干貨 2016-12-02
  • 源碼編譯安裝Apache

    編譯安裝Apache 系統環境:centos 7.2 前提: 提供開發工具及開發環境 開發工具:make, gcc等 開發環境:開發庫,頭文件 glibc:標準庫 方式: 通過“包組”提供開發組件 centos 6 [root@centos6 ~]# yum groupinstall "Develo…

    Linux干貨 2016-08-24
  • 網絡班N22期第七周博客作業

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;     [root@bogon ~]# fdisk /dev/sde   &nb…

    Linux干貨 2016-10-17
  • 文本查看、處理工具的應用及組、用戶的相關操作

            一、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可      查看已經登錄的用戶用“who”命令,為了試驗我用root多登錄了幾次。    &nb…

    2017-07-16
欧美性久久久久