你好,游客 登录 注册 搜索
背景:
阅读新闻

自动安装配置httpd虚拟主机的脚本

[日期:2012-06-01] 来源:Linux社区  作者:gm100861 [字体: ]

脚本练习,写一个脚本,实现本地Web服务器的配置:
1、检查httpd包是否已经安装,如果没有,则使用yum命令安装之;(需要事先配置好yum源)
2、取消中心主机,新建5个基于域名的虚拟主机,并分别提供一个测试主页,主页内容为其对应的FQDN:
www.linuxidc.com, /vhosts/linuxidc
bbs.linuxidc.com, /vhosts/bbs
wp.linuxidc.com, /vhosts/wordpress
pw.linuxidc.com, /vhosts/pw
pma.linuxidc.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!"
echo "=============================================="
YUM_CONF_DIR=/etc/yum.repos.d/
for Y in $YUM_CONF_DIR/*.repo; do
mv $Y $Y.bak &>/dev/null
done
echo "=============================================="
echo "Backup successfully."
echo "=============================================="
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
gpgcheck=0
enabled=1

[Cluster]
name=Cluster
baseurl=ftp://172.16.0.1/pub/Cluster
gpgeheck=0

[ClusterStorage]
name=ClusterStorage
baseurl=ftp://172.16.0.1/pub/ClusterStorage
gpgcheck=0
enabled=1

[errata]
name=errata
baseurl=ftp://172.16.0.1/pub/errata
gpgeheck=0
enabled=0
EOF
echo "OK!"
echo "=============================================="
}

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/{linuxidc,bbs,wp,pw,pma} &>/dev/null
FQDN=linuxidc.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.linuxidc.com")
URL_DIR=/vhosts/linuxidc
cat >>$f <<EOF
<VirtualHost *:80>
ServerName $u
DocumentRoot $URL_DIR
</VirtualHost>
EOF
CreateTestPage ;;
"bbs.linuxidc.com")
URL_DIR=/vhosts/bbs
cat >> $f <<EOF
<VirtualHost *:80>
ServerName $u
DocumentRoot $URL_DIR
</VirtualHost>
EOF
CreateTestPage ;;
"wp.linuxidc.com")
URL_DIR=/vhosts/wp
cat >>$f <<EOF
<VirtualHost *:80>
ServerName $u
DocumentRoot $URL_DIR
</VirtualHost>
EOF
CreateTestPage ;;
"pw.linuxidc.com")
URL_DIR=/vhosts/pw
cat >>$f <<EOF
<VirtualHost *:80>
ServerName $u
DocumentRoot $URL_DIR
</VirtualHost>
EOF
CreateTestPage ;;
"pma.linuxidc.com")
URL_DIR=/vhosts/pma
cat >>$f <<EOF
<VirtualHost *:80>
ServerName $u
DocumentRoot $URL_DIR
</VirtualHost>
EOF
CreateTestPage ;;
*)
echo "Error..." ;;
esac
done
if `service httpd configtest`; then
chkconfig --level 345 httpd on
service httpd start
fi

linux
相关资讯       httpd配置 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款