天天看點

自動安裝配置httpd虛拟主機的腳本

腳本練習,寫一個腳本,實作本地Web伺服器的配置:

1、檢查httpd包是否已經安裝,如果沒有,則使用yum指令安裝之;(需要事先配置好yum源)

2、取消中心主機,建立5個基于域名的虛拟主機,并分别提供一個測試首頁,首頁内容為其對應的FQDN:

www.magedu.com, /vhosts/magedu

bbs.magedu.com, /vhosts/bbs

wp.magedu.com, /vhosts/wordpress

pw.magedu.com, /vhosts/pw

pma.magedu.com, /vhosts/phpmyadmin

3、檢查修改後的配置檔案文法,如果沒有問題,則啟動httpd服務,并要求以後服務會開機自動啟動;

#!/bin/bash

#Author honway

#ScriptName AutoSetWebServer

SetYUM() {

echo "=============================================="

echo "Start backup files."

echo "backup your .repo file to .repo.bak!"

YUM_CONF_DIR=/etc/yum.repos.d/

for Y in $YUM_CONF_DIR/*.repo; do

mv $Y $Y.bak &>/dev/null

done

echo "Backup successfully."

echo "Create a yum config file."

cat >> $YUM_CONF_DIR/yumconf.repo <<EOF

[Server]

name=Server

baseurl=ftp://172.16.0.1/pub/Server

gpgcheck=0

enabled=1

[VT]

name=VT

baseurl=ftp://172.16.0.1/pub/VT

[Cluster]

name=Cluster

baseurl=ftp://172.16.0.1/pub/Cluster

gpgeheck=0

[ClusterStorage]

name=ClusterStorage

baseurl=ftp://172.16.0.1/pub/ClusterStorage

[errata]

name=errata

baseurl=ftp://172.16.0.1/pub/errata

enabled=0

EOF

echo "OK!"

}

CreateTestPage(){

echo "$u" > $URL_DIR/index.html

SetYUM

if ! `rpm -qa | grep httpd &>/dev/null`; then

echo "===============================>"

echo "Start install httpd.please wait..."

yum -y install httpd &>null

else

echo "install is not sucess,something error."

fi

SetVirtualConfig(){

sed -i 's@\(^DocumentRoot[[:space:]]\{1,\}"/var/www/html"\)@#\1@g' /etc/httpd/conf/httpd.conf

sed -i 's@^#\(NameVirtualHost[[:space:]]\{1,\}[^[:space:]]\{1,\}:80$\)@\1@g' /etc/httpd/conf/httpd.conf 

SetVirtualConfig

mkdir -p /vhosts/{magedu,bbs,wp,pw,pma} &>/dev/null

FQDN=magedu.com

f=/etc/httpd/conf/httpd.conf

for u in {www.$FQDN,bbs.$FQDN,wp.$FQDN,pw.$FQDN,pma.$FQDN}; do

case "$u" in

"www.magedu.com")

URL_DIR=/vhosts/magedu

cat >>$f <<EOF

<VirtualHost *:80>

ServerName $u

DocumentRoot $URL_DIR

</VirtualHost>

CreateTestPage ;;

"bbs.magedu.com")

URL_DIR=/vhosts/bbs

cat >> $f <<EOF

"wp.magedu.com")

URL_DIR=/vhosts/wp

"pw.magedu.com")

URL_DIR=/vhosts/pw

"pma.magedu.com")

URL_DIR=/vhosts/pma

*)

echo "Error..." ;;

esac

if `service httpd configtest`; then

chkconfig --level 345 httpd on

service httpd start

本文轉自 gm100861 51CTO部落格,原文連結:http://blog.51cto.com/gm100861/803162