apache服務自動化安裝_shell指令碼

來源:互聯網
上載者:User

標籤:服務   shell   

項目背景:在區域網路內,取某一台主機當作伺服器,並且開啟ftp服務,提供apr、apr-utils、pcre、httpd軟體下載

運行環境:redhat 6.4

#!/bin/bash
#自動化安裝apache
yum list &>/dev/null
if [[ "$?" != "0" ]];then
    if [ -e /dev/sr0 ];then
        mount /dev/sr0 /mnt
    elif [ -e /dev/cdrom ];then
        mount /dev/cdrom /mnt
    else
        echo "未檢測到光碟片,請插入光碟片"
        exit 10
    fi
    #搭建yum源
    cd /etc/yum.repos.d
    sed -i "s/^/#/g" *.repo
cat << EOF >>*.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF
    yum list &>/dev/null
    if [ $? -eq 0 ];then
        echo "yum源搭建成功"
    else
        echo "yum源搭建失敗,系統退出"
        exit 20
    fi
fi

ruanjian=(gcc gcc-c++ lynx)
echo "${ruanjian[@]}"
for i in ${ruanjian[@]}
do
    yum remove $i -y &>/dev/null
    if [ $? -eq 0 ];then
        yum install $i -y &>/dev/null
        if [ $? -eq 0 ];then
            continue
        else
            echo "$i install error,program exit"
            exit 30
        fi
    else
        echo "$i remove error"
        exit 40
    fi
done

#下載源碼包
yum install expect -y &>/dev/null
ping -c 3 10.0.0.254 &>/dev/null
if [ $? -eq 0 ];then
    yum install lftp -y &>/dev/null
    mkdir /root/soft
    cd /root/soft
/usr/bin/expect <<EOF
set timeout 20
spawn lftp 10.0.0.254
expect {
    "*" { send "mget soft/lamp/httpd-2.4.20.tar.bz2 soft/lamp/apr-1.5.2.tar.gz soft/lamp/apr-util-1.5.4.tar.gz soft/lamp/pcre-8.36.tar.gz\n"}
}
expect {
    "*" { send "exit\n"}
}
expect eof
EOF
    if [ $? -eq 0 ];then
        echo "源碼包下載成功"
    else
        echo "源碼包下載失敗,程式退出"
        exit 50
    fi
else
    echo "與伺服器網路不通,程式退出"
    exit 60
fi

cd /root/soft

tar -xf httpd-2.4.20.tar.bz2
cp -ar httpd-2.4.20 httpd

tar -xf apr-1.5.2.tar.gz
cp -ar apr-1.5.2 apr

tar -xf apr-util-1.5.4.tar.gz
cp -ar apr-util-1.5.4 apr-util

tar -xf pcre-8.36.tar.gz
cp -ar pcre-8.36 pcre

cd ./pcre
pwd
./configure --prefix=/usr/local/pcre --enable-utf8 --enable-jit  &>./pcre.txt
if [ $? -eq 0 ];then
       yum install make -y &>/dev/null
       make &>./pcre.txt && make install &>./pcre.txt
        if [ $? -eq 0 ];then
                echo "pcre安裝成功"
        else
                echo "pcre安裝失敗,程式退出"
                exit 70
        fi
else
        echo "pcre配置失敗,程式退出"
        exit 80
fi
cd ..

cd ./httpd/srclib
pwd
cp -r ../../apr .
cp -r ../../apr-util .
cd ..
./configure --prefix=/usr/local/httpd --enable-cache --enable-cache-disk --enable-cache-socache --enable-so --enable-modules=all --enable-mods-shared=all  --enable-echo --enable-data --enable-include --enable-sed --enable-proxy --enable-proxy-connect --enable-proxy-http --enable-proxy-fcgi --enable-proxy-scgi --enable-proxy-ajp --enable-proxy-balancer  --enable-info --enable-rewrite   --with-pcre=/usr/local/pcre --enable-mpms-shared=all --enable-userdir &>./httpd.txt
if [ $? -eq 0 ];then
        make  &>./httpd.txt && make install &>./httpd.txt
        if [ $? -eq 0 ];then
                echo "apache安裝成功"
        else
                echo "apache安裝失敗,程式退出"
                exit 80
        fi
else
        echo "apache配置失敗,程式退出"
        exit 90
fi

#編輯設定檔,開啟apache服務
cd /usr/local/httpd/conf
pwd
ip="`ifconfig eth0|grep "inet addr:"|awk -F ":" ‘{print $2}‘|awk ‘{print $1}‘ `"
sed -i "/ServerName www.example.com:80/a ServerName $ip" httpd.conf
sed -i "/^#Include conf\/extra\/httpd-mpm.conf/a Include conf/extra/httpd-mpm.conf" httpd.conf
sed -i "/^#Include conf\/extra\/httpd-default.conf/a Include conf/extra/httpd-default.conf" httpd.conf

#驗證apache服務是哦否開啟成功
#cd /usr/local/httpd/bin
#./apachectl start
#lsof -i:80 -n
#if [ $? -eq 0 ];then
#    echo "apache服務開啟成功"
#else
#    echo "apache服務開啟失敗,開始查看錯誤記錄檔"
#    tail ../logs/error_log
#fi

#將httpd服務加入到service管理
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
sed -i "9a #     chkconfig: - 85 15" /etc/init.d/httpd
chkconfig --add httpd
service httpd start
lsof -i:80 -n &>/dev/null
if [ $? -eq 0 ];then
    echo "apache服務開啟成功"
else
    echo "apache服務開啟失敗,開始查看錯誤記錄檔"
    tail ../logs/error_log
fi



我的測試結果會報錯,說mod_slotmem_shm這個模組沒有開啟,可以編輯httpd.conf檔案,開啟這個模組,可以成功開啟apache服務

具體錯誤如下:

[Sun Aug 28 13:40:01.931826 2016] [proxy_balancer:emerg] [pid 74484:tid 140584019928832] AH01177: Failed to lookup provider ‘shm‘ for ‘slotmem‘: is mod_slotmem_shm loaded??
[Sun Aug 28 13:40:01.932096 2016] [:emerg] [pid 74484:tid 140584019928832] AH00020: Configuration Failed, exiting

本文出自 “天晴了要下雨” 部落格,請務必保留此出處http://8776055.blog.51cto.com/8766055/1844472

apache服務自動化安裝_shell指令碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.