自动搭建lamp架构,安装/卸载bbs论坛

 编写自动化安装工具脚本,具体要求如下 :

 1.  菜单函数实现显示界面

 2.  yum函数判断yum是否正常

 3.  安装rpm函数判断是否需要安装软件包,无法安装要退出脚本

 4.  删除rpm函数判断是否需要删除软件包,无法删除要退出脚本

 5.  重启服务函数,无法启动服务要退出脚本

 6.  mysql密码修改函数,无法修改密码要退出脚本

 7.  安装论坛函数

 8.  卸载论坛函数

 卸载论坛的时候,需要将安装的包都卸载,并且需要删除如下文件

 1.  DNS遗留文件

 2.  数据库遗留文件

 3.  apache遗留文件

 4.  LAMP论坛的遗留文件

1. 自定义lib库函数:

#!/bin/bash

#comment

###### 菜单显示函数 ########

menu(){

echo

echo -e " ***自动化安装工具*** "

echo -e " 1. 自动安装LAMP论坛 "

echo -e " 2. 自动卸载LAMP论坛 "

echo -e " 0. 退出菜单 "

echo -n -e " 你的选择是:"

read -n1 choice

}

###### 搭建yum源 ########

myyum(){

mkdir -p $DIR

mount /dev/cdrom $DIR &> /dev/null

yum clean all &> /dev/null

rm -rf /etc/yum.repos.d/*

        cat << end > /etc/yum.repos.d/local.repo

[Server]

name=Server

baseurl=file://$DIR/Server

enabled=1

gpgcheck=0

end

echo -e " yum is ok"

}

###### yum 安装软件 #######

yuminstall(){

echo -e " 开始安装lamp需要到软件包..."

for i in $SOFTS

do

          rpm -q $i &> /dev/null

  if (( $?!=0 ))

   then

   yum install $i -y &> /dev/null 

    if (($?==0))

      then

                echo -e " $i安装成功"

    else

         echo -e " $i安装出错"

         exit 1

    fi

   else

     echo -e " $i 已经安装"

  fi

done

}

####### yum 卸载软件 #######

yumremove(){

        echo -e " 开始卸载lamp软件包..."

        for i in $SOFTS

        do

          rpm -q $i &> /dev/null

          if (( $?==0 ))

           then

           yum remove $i -y  &> /dev/null

            if (($?==0))

              then

                 echo -e " $i卸载成功"

            else

                 echo -e " $i卸载出错"

                 exit 1

            fi

  else

    echo -e " $i 软件包未安装"

          fi

        done

}

####### 服务启动 ########

Serstart(){

 service $1 restart &> /dev/null

 if (($?==0))

         then

          echo -e " $1 已经重启成功"

         else

          echo -e " $1 服务有问题" 

          exit 1

         fi

}

####### mysql密码测试 ######

mysqlpass(){

        echo -e " 开始设置mysql密码"

Serstart mysqld

mysql -u root -e "use test;"

if (( $?==0 ))

then

   mysqladmin -uroot password '123' && echo -e " mysql 密码修改成功"

else

   echo -e " mysql无法修改密码"

   exit 1

fi

}

####### 检测dns环境 #######

chkdns(){

echo -e " 开始配置DNS服务"

cat << EOF > /etc/named.conf

options {

        directory       "/var/named";

};

zone "$NAME"{

   type master;

   file "$NAME.zone";

};

EOF

cat << EOF > /var/named/$NAME.zone

$TTL 1D

@       IN SOA  dns.$NAME.  root (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        IN      NS      dns.$NAME.

dns     IN      A       $NET

bbs     IN      A       $NET

EOF

chown root:named /var/named/$NAME.zone

echo "nameserver $NET"> /etc/resolv.conf

}

####### 检测虚拟主机 ########

chkvhost(){

 echo -e " 开始配置虚拟主机"

 cat << EOF > /etc/httpd/conf.d/vhost.conf

NameVirtualHost $NET:80

<VirtualHost $NET:80>

 DocumentRoot $ROOT

 ServerName bbs.$NAME

</VirtualHost>

EOF

 echo -e " 虚拟主机配置完成"

 Serstart named

 Serstart httpd

}

####### 拷贝论坛文件 ########

cpfile(){

echo -e " 开始复制论坛文件"

{

mkdir -p /tmp/softdir

        rm -rf /tmp/softdir/*

unzip ./$SOFT -d /tmp/softdir/

rm -rf $ROOT

cp -a /tmp/softdir/upload $ROOT

} &> /dev/null

if (( $? != 0 ))

  then

  echo -e " 复制文件出错"

  exit 1

else

chown -R apache:apache ${ROOT}/{data,config,uc_*}

echo -e " lamp论坛安装完成请在浏览器中输入http://bbs.$NAME开始安装"

exit 0

fi

}

###### 删除遗留文件 #######

rmfile(){

echo -e " 正在删除遗留文件...."

for file in $RMFILES

do

 rm -rf $file &> /dev/null

done      

echo -e " 成功删除遗留文件"

       exit 0

}

2.安装主程序:

#!/bin/bash

. ./lib.sh

SOFT="Discuz_X2.5_SC_UTF8.zip"

SOFTS="httpd mysql mysql-server mysql-devel php php-mysql bind bind-chroot"

DIR=/media/cdrom

ROOT=/var/www/bbs

NET=192.168.190.129

NAME=cc.com

RMFILES="$ROOT /etc/named.* /var/named /etc/httpd/conf.d /var/lib/mysql"

###### 安装主程序 ########

pinstall(){

       if [ -d $ROOT ]

then

  echo -e " 33[31m已经安装,请先卸载33[0m"

  return

else

  echo -e " 准备安装环境...."

myyum

yuminstall

mysqlpass

chkdns

chkvhost

cpfile

fi    

}

###### 卸载程序 ######

uninstall(){

if [ ! -d $ROOT ]

        then

          echo -e " 33[31m未安装,请先安装33[0m"

  return

        else

          echo -e -n " 33[31m确定要卸载(yes/no)33[0m"

while true

do

  read  que

  case "$que" in

          no|NO)

  return

          ;;

  yes|YES)

  break

  ;;

  *)

          echo -e -n " 33[31m请输入(yes/no)33[0m"

  ;;

  esac

        done

  echo -e " 准备卸载...."

  myyum

  yumremove

  rmfile

fi

  }

   while true

do

       clear

       menu

     case "$choice" in

       0)

                break

                      ;;

       1)

                pinstall

                      ;;

       2)

                uninstall

                      ;;

      *)

         echo -e " 33[31m没有这个选项33[0m"

                      ;;

     esac

         echo -e -n " Press any key to return"

 read  -n1 any

done

clear

运行测试:

[root@server2 lamp_sh]# sh lamp.sh     

                ***自动化安装工具***

  1.         1.      自动安装LAMP论坛
  1.         2.      自动卸载LAMP论坛
  1.         0.      退出菜单

                你的选择是:1

准备安装环境....

yum is ok

开始安装lamp需要到软件包...

httpd 已经安装

mysql 已经安装

mysql-server 已经安装

mysql-devel 已经安装

php 已经安装

php-mysql 已经安装

bind 已经安装

bind-chroot 已经安装

开始设置mysql密码

mysqld 已经重启成功

mysql 密码修改成功

开始配置DNS服务

开始配置虚拟主机

虚拟主机配置完成

named 已经重启成功

httpd 已经重启成功

开始复制论坛文件

lamp论坛安装完成请在浏览器中输入http://bbs.cc.com开始安装

将来的你,一定会感谢现在拼命努力的你。
原文地址:https://www.cnblogs.com/51runsky/p/3306109.html