一鍵編譯安裝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

相關推薦

  • shell位置變量解析

    什么是位置變量 在腳本代碼中調用通過命令行傳遞給腳本的參數。 有哪些位置變量 $1,$2,…: 對應第1、第2等參數,shift [n]換位置 $0:命令本身 $*:傳遞給腳本的所有參數,全部參數合為一個字符串 $@:傳遞給腳本的所有參數,每個參數為獨立字符串$#:傳遞給腳本的參數的個數    &nbsp…

    Linux干貨 2016-08-15
  • 馬哥教育網絡班21期+第1周課程練習

    1.描述計算機的組成及其功能。   計算機主要由運算器,控制器,存儲器,輸入設備,輸出設備組成   運算器用來做計算,用來做二進制運算(加法運算)和邏輯運算   控制器用來控制計算機各部件之間的協調,例如運算器想做運算從哪里讀入加數和被加數,寄存在哪里   存儲器分為內存儲器和外存儲器,用來存放數據 內存儲器用于存放計…

    Linux干貨 2016-07-12
  • 權限命令總結

    修改文件權限:chmod 1 2 3 4 [root@centos7 ~]# man chmod        chmod [OPTION]… MODE[,MODE]… FILE…    …

    Linux干貨 2016-08-04
  • 文本處理練習題

    文本處理練習:   1.找出本機ip地址   [root@localhost ~]# ifconfig |head -2 |tail -1 |tr -s ' ' ':' |cut -d: -f3   10.1.252.221   2.查看本機分區最大的利用率   [root@l…

    Linux干貨 2016-08-08
  • N22網絡班第一周作業

    1、 描述計算機的組成及其功能。 運算器、控制器、存儲器、輸入設備、輸出設備 運算器、控制器 :cpu 運算和邏輯計算 存儲器:緩存和保存數據 輸入設備、輸出設備:用戶和計算機交互設備和界面 2、 按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。 Slackware系列: suse   opensuse debian系列: ubun…

    Linux干貨 2016-08-15
  • man手冊的使用

    在Linux中man的使用頻率應該是很高的,靈活運用它可以讓自己快速的掌握一個不熟悉命令的使用方法。下面來介紹下man 環境CentOS6.8 man – format and display the on-line manual pages 在線使用手冊格式及展示通俗點來說它就是命令的使用手冊。它共分九個章節 1、用戶命令2、系統調用3、C庫調…

    Linux干貨 2016-10-19
欧美性久久久久