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

本文介绍了一个用于自动化安装和卸载LAMP论坛的Shell脚本,包括环境准备、软件安装、DNS配置、虚拟主机配置及论坛文件复制等步骤,并提供错误处理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 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 "\t\t***自动化安装工具***\n\n"

echo -e "\t1.\t自动安装LAMP论坛\n"

echo -e "\t2.\t自动卸载LAMP论坛\n"

echo -e "\t0.\t退出菜单\n\n"

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

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 "\nyum is ok"

}

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

yuminstall(){

echo -e "\n开始安装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 "\n$i安装成功"

    else

         echo -e "\n$i安装出错"

         exit 1

    fi

   else

     echo -e "\n$i 已经安装"

  fi

done

}

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

yumremove(){

        echo -e "\n开始卸载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 "\n$i卸载成功"

            else

                 echo -e "\n$i卸载出错"

                 exit 1

            fi

  else

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

          fi

        done

}

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

Serstart(){

 service $1 restart &> /dev/null

 if (($?==0))

         then

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

         else

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

          exit 1

         fi

}

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

mysqlpass(){

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

Serstart mysqld

mysql -u root -e "use test;"

if (( $?==0 ))

then

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

else

   echo -e "\nmysql无法修改密码"

   exit 1

fi

}

 

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

chkdns(){

echo -e "\n开始配置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 "\n开始配置虚拟主机"

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

NameVirtualHost $NET:80

<VirtualHost $NET:80>

 DocumentRoot $ROOT

 ServerName bbs.$NAME

</VirtualHost>

EOF

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

 Serstart named

 Serstart httpd

}

 

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

cpfile(){

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

{

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 "\n复制文件出错"

  exit 1

else

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

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

exit 0

fi

}

 

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

rmfile(){

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

for file in $RMFILES

do

 rm -rf $file &> /dev/null

done      

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

       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 "\n\n\n\t\t\033[31m已经安装,请先卸载\033[0m"

  return

else

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

myyum

yuminstall

mysqlpass

chkdns

chkvhost

cpfile

fi    

}

 

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

uninstall(){

if [ ! -d $ROOT ]

        then

          echo -e "\n\n\n\t\t\033[31m未安装,请先安装\033[0m"

  return

        else

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

while true

do

  read  que

  case "$que" in

          no|NO)

  return

          ;;

  yes|YES)

  break

  ;;

  *)

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

  ;;

  esac

        done

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

  myyum

  yumremove

  rmfile

fi

  }

 

   while true

do

       clear

       menu

     case "$choice" in

       0)

                break

                      ;;

       1)

                pinstall

                      ;;

       2)

                uninstall

                      ;;

      *)

         echo -e "\n\n\n\t\t\033[31m没有这个选项\033[0m"

                      ;;

     esac

         echo -e -n "\n\n\t\tPress 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值