腳本練習,寫一個腳本,實作本地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