一鍵編譯安裝apche腳本—適用于Centos6 和 Centos 7

此腳本可實現apache,httpd-2.2.34適用于Centos6,和 httpd-2.4.25適用于Centos7,的一鍵編譯安裝。
同時可實現在Centos6 和Centos7 上實現網絡遠程安裝!

  • 程序設計

為實現源碼編譯安裝一鍵操作,同時可以實現網絡遠程安裝,這樣只要安裝好一臺主機,別的主機就可以通過網絡遠程運行網絡主機的腳本來實現本地主機的軟件安裝,省去了拷貝腳本和安裝包的時間,提高工作效率!此腳本默認局域網內安裝,腳本需提前在互聯網下載好,存放至網絡主機指定文件夾內。

  • 目標功能
  1. 可以在Centos6,和Centos7上分別實現一鍵安裝對應匹配的apche版本;
  2. 同時在任意一臺機器上均可實現網絡安裝,即通過http協議運行另外一臺機器上的httpd_install.shjiao腳本實現一鍵編譯安裝本機匹配的apache版本
  • 實現思路
  1. 在安裝前,先拷貝好需要安裝的兩個apache軟件版本,http-2.2.34(Centos6)和http.2.4.25(Centos7)的安裝包,放至單機安裝的機器上的/var/www/html/src/下,以便本機可以通過http功能,首先給自己安裝對應版本軟件。
  2. 通過httpd實現網絡的單機安裝,安裝之前先確認httpd功能可用,安裝好apache后,將httpd進程殺掉,將80端口釋放,另外機器通過apache軟件的http功能實現網絡安裝。
  • 代碼展示

1將常量和變量在這里進行聲明,IP和安裝包可以在這里進行替換,提高腳本管理的靈活和實用性。

代碼1

2

(1安裝前確認httpd 服務是正常工作的,由于不知名的問題,這里只有先卸載再重新安裝一下,才能確保它是正常工作的;

(2判斷完版本后,對Pa(安裝包變量)進行賦值,同時執行對應版本關閉防火墻的密令;

(3通過sed 密令修改SELINUX值為disable.考慮到這個值可能已經被改過,所以通過行首錨定,只檢索^SELINUX,然后替換整行;

(4判斷并且創建/app 和/root/src? 文件夾通過wget 命令通過http 協議,獲取安裝包,解壓縮至/src 下,進入文件夾內,準備安裝;

代碼2

3安裝步驟很簡單,這里的killall -9 httpd 是用來釋放80端口的,安裝時,總是報錯,80端口被httpd進程占用,所以只有殺掉進程,才能最后啟動成功。

代碼3

4這里存粹是為了網絡安裝做準備,apachectl start 成功后,另外一臺主機就可以通過

curl http://主機IP/httpd_install.sh|bash? 來運行腳本為本機編譯安裝軟件了!

代碼4

 

 

 

源代碼如下:

#!/bin/bash
#
#********************************************************************
#Author: nieshaokai
#Date: 2018-07-31
#FileName: httpd_install.sh
#URL: http://www.magedu.com
#Description: The apache install suitable for Centos6 or Centos7
#Version 1.0
#The Script adheres to the OLP
#OLP-old white protocol;the changer must be handsome and don`t snore

#常量聲明
——————————————————————————————————————
IP=192.168.0.116 #遠程主機的IP
P7=httpd-2.4.25.tar.bz2 #Centos6 的源碼版本
P6=httpd-2.2.34.tar.bz2 #Centos7 的源碼版本

#變量聲明
#——————————————————————————————————————
V=`cat /etc/redhat-release| sed -r ‘s/[^0-9]+([0-9]).*/\1/’` #版本號
#Pa 代碼中源碼包變量

#安裝前準備工作
#——————————————————————————————————————
yum clean all &> /dev/null;
yum -y remove httpd || exit;
killall -9 httpd
yum -y install httpd || exit;
[ $V -eq 6 ] && { service iptables stop; chkconfig iptables off;Pa=${P6};service httpd start; }
[ $V -eq 7 ] && { systemctl stop firewalld;systemctl disable firewalld;Pa=${P7};systemctl start httpd; }
yum -y groupinstall “Development tools” || exit;
sed -i ‘s/^SELINUX.*/SELINUX=disabled/’ /etc/selinux/config # 將SELINUX=enforcing這行替換成=disabled;
[ -d /app ] || mkdir /app
[ -d /root/src ] || mkdir src; #查看是不是有src 文件夾沒有的話創建一個
cd /root/src
wget http://${IP}/src/${Pa} || exit;
tar xvf ${Pa}
cd `echo ${Pa}|sed -r ‘s/(^httpd-.*)\.tar.*/\1/’` ||exit;

#安裝模塊
#——————————————————————————————————————
./configure –prefix=/app # 將安裝目錄設置成/app
[ $? -eq 0 ] && make -j4 && make install || { echo -e”\e[31;1mThere’s a problem here\e[0m” ;exit; }

echo ‘PATH=/app/bin:$PATH’ >> /etc/profile.d/env.sh #修改環境變量
. /etc/profile.d/env.sh
killall -9 httpd # httpd進程非法占用80端口,已經被判死刑,立即執行!
apachectl start
[ $? -eq 0 ] && echo -e “\e[36;1mwelcom to use apache\e[0m” || echo -e “\e[31;1mOther problems may cause the startup to fail\e[0m”

#為做網絡安裝主機做準備
#——————————————————————————————————————
[ -d /app/htdocs/src ] || mkdir /app/htdocs/src
cd /app/htdocs/src
cp /var/www/html/src/http* /app/htdocs/src/
cp /root/bin/httpd_install.sh /app/htdocs/ &> /dev/null

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96888

(4)
知行合一知行合一
上一篇 2018-04-22 23:28
下一篇 2018-04-23 08:29

相關推薦

  • linux如何使用命令幫助

    Linux如何使用命令幫助 whatis:顯示命令的簡短描述 whatis命令在用 catman -w命令創建的數據庫中查找command參數指定的命令、 系統調用、庫函數或特殊文件名。whatis命令顯示手冊部分的頁眉行。然后可以發出man命令以獲取附加的信息。whatis命令等同于使用man -f命令。linux系統剛安裝后不可立即使用使用 makewh…

    Linux筆記 2018-05-07
  • 源碼的編譯和安裝

    以httpd的安裝為例,詳細講解了編譯安裝的原理

    2018-04-21
  • ssh等

    SSH端口轉發 SSH會自動的加密和解密所有SSH客戶端與服務器之間的網絡數據;同時也可以將其他TCP端口的數據加密轉發,這一過程叫“隧道”,這樣也可以減少防火墻開啟的端口。 實現過程是數據首先通過連接本機的某一個端口,被當做ssh協議數據發送給ssh服務器,ssh服務器解密再發給遠程主機的端口 本地轉發: -L localport:remotehost:r…

    2018-05-28
  • cp 常用選項

    cp 選項:

    Linux筆記 2018-04-01
  • RHEL7.2搭建yum源

    我在RHEL7.2搭建本地yum時發現突然報錯了。 查看了一下報錯信息顯示 加載插件:langpacks,產品ID,搜索禁用回購,訂閱管理器該系統未注冊到紅帽訂閱管。你可以使用subscription-m急于注冊.repolist:0由于Redhat的yum在線更新是收費的,如果沒有注冊的話是不能使用的,即不能在線安裝軟件。 我只好用CentOS的yum來替…

    2018-04-19
  • Linux之下的文件權限

    文件的屬性 文件屬性 Linux下的文件類型 -:普通文件 d:?目錄文件 b: 塊設備 c:?字符設備 l:?符號鏈接文件 p:?管道文件pipe s:?套接字文件socket …… 權限表示法 文件的權限 在文件權限中,一共有十字符,第一個字符為文件的類型。接下來的字符分為三組,分別是文件所有者、所屬組、其他人。每一組分別由rwx?三個參數組合。其中,r…

    Linux筆記 2018-04-08
欧美性久久久久