用shell脚本一键安装和卸载lamp的框架(你是朝露,是晚星,是我一切欢喜)

咱今天使用shell脚本来安装lamp的框架 要想快捷的安装框架我们要使用阿里的在线yum源

shell脚本源代码

#!/bin/bash

####################
##### 前提条件 #####
####################

prerequisite(){
  echo "`date '+%Y-%m-%d %H:%M:%S'` 	============== Start init config  ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
  # 防火墙状态、SELINUX 状态
  FIREWALLD_STATUS=`systemctl status firewalld | grep loaded | wc -l`
  SELINUX_STATUS=$(getenforce)
  

  # 关闭和永久关闭防火墙
  if [ ${FIREWALLD_STATUS} -ne 1 ]
    then
      systemctl stop firewalld && systemctl disable firewalld
      if [ $? -eq 0 ]
        then
          echo "`date '+%Y-%m-%d %H:%M:%S'` 	Firewalld successfully ok" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
        else 
          echo "`date '+%Y-%m-%d %H:%M:%S'` 	Firewalld close failed..."  1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
          exit 1
      fi 
  fi
  
  # 关闭 SELINUX
  if [ ${SELINUX_STATUS} -ne Disabled ]
    then
      setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
      if [ $? -eq 0 ]
        then
          echo "`date '+%Y-%m-%d %H:%M:%S'` 	Selinux successfully ok" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
        else
          echo "`date '+%Y-%m-%d %H:%M:%S'` 	Selinux close failed..."  1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
          exit 2
      fi
  fi

  # 配置阿里 yum 源
  if [ -f /etc/yum.repos.d/CentOS-Base.repo ] && [ -f /etc/yum.repos.d/epel.repo ]
    then
      echo "`date '+%Y-%m-%d %H:%M:%S'` 	Centos_7 yum config successfully ok"  1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
    else
      echo "`date '+%Y-%m-%d %H:%M:%S'` 	Config centos_7 yum string..."  1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
      curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &&\
      curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
      if [ $? -eq 0 ]
        then
          echo "`date '+%Y-%m-%d %H:%M:%S'` 	Yum config successfully ok"  1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
        else
          echo "`date '+%Y-%m-%d %H:%M:%S'` 	Yum config failed..."  1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
          exit 3
      fi
      # 清除缓存 & 建立缓存
      yum clean all ; yum makecache

  fi
  
  echo "`date '+%Y-%m-%d %H:%M:%S'` 	============== Init config successfully =============="    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
}

##########################
##### Install Apache #####
##########################

install_apache(){
  # Apache 版本控制
  APACHE_VERSION=2.4.6
 
   
  # 判断 apache 是否安装
  APACHE_INSTALLED=$(rpm -aq | grep httpd-${APACHE_VERSION} | wc -l)
  if [ ${APACHE_INSTALLED} -ne 1  ]
    then
      echo "`date '+%Y-%m-%d %H:%M:%S'`		============== Start install apache server =============="   1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
      # install apache
      yum install -y httpd-${APACHE_VERSION}

     # 判断是否安装成功,安装成功就启动,失败就退出
      if [ $? -eq 0 ]
        then
          sleep 3
          echo "`date '+%Y-%m-%d %H:%M:%S'` 	Apache server install successfully ok"   1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
          # 启动 apache 并设置开机自启
          systemctl enable httpd ; systemctl start httpd
          # 判断是否启动成功
          if [ $? -eq 0 ]
            then
              echo "`date '+%Y-%m-%d %H:%M:%S'` 	Start apache server successfully ok"   1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
            else
              echo "`date '+%Y-%m-%d %H:%M:%S'` 	Start apache server failed..."    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
              exit 4
          fi
        else
          echo "`date '+%Y-%m-%d %H:%M:%S'` 	Install apache server failed..."    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
          exit 5
      fi

      # 检测 apache 服务端口和服务状态
      sleep 3
      APACHE_STATUS=$(systemctl status httpd | grep running | wc -l)
      APACHE_PORT=$(netstat -ntplu | grep 80 | wc -l)
      if [ ${APACHE_PORT} -eq 1 ] && [ ${APACHE_STATUS} -eq 1 ]
        then
          echo "`date '+%Y-%m-%d %H:%M:%S'`	Apache port exists or status ok"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
        else  
          echo "`date '+%Y-%m-%d %H:%M:%S'`	 Apache port no eists or status no ok..."    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
          exit 6
      fi

      # 判断 index.html 文件是否存在
      if [ ! -f /var/www/html/index.html ]
        then
         echo hello,world > /var/www/html/index.html
         sleep 2
      fi
      # curl 访问 apache
      curl -I 127.0.0.1 | grep "200 OK"

      if [ $? -eq 0 ]
        then
          echo "`date '+%Y-%m-%d %H:%M:%S'`	 Apache server 访问 successfully"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
        else
          echo "`date '+%Y-%m-%d %H:%M:%S'` 	Apache server 访问 failed..."    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
          exit 7
      fi
      echo "`date '+%Y-%m-%d %H:%M:%S'` 	============== apache server successfully =============="   1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
    else
      echo "`date '+%Y-%m-%d %H:%M:%S'` 	============== apache server installed =============="   1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
  fi
}

###########################
##### Install Mariadb #####
##########################

install_mariadb(){
   # mariadb 版本控制
   MARIADB_VERSION=5.5.68
   # mariadb password
   MARIADB_PASSWORD=000000
   # 判断 maraidb 是否安装
   MARIADB_INSTALLED=$(rpm -qa | grep mariadb-${MARIADB_VERSION} | wc -l)
   MARIADB_SERVER_INSTALLED=$(rpm -qa | grep mariadb-server-${MARIADB_VERSION} | wc -l)
   #MARIADB_LIBS_INSTALLD=$(rpm -qa | grep mariadb-libs-${MARIADB_VERSION} | wc -l)
   MARIADB_DEVEL_INSTALLED=$(rpm -qa | grep mariadb-devel-${MARIADB_VERSION} | wc -l)

   if [ ${MARIADB_INSTALLED} -ne 1 ] && [ ${MARIADB_SERVER_INSTALLED} -ne 1 ] && [ ${MARIADB_DEVEL_INSTALLED} -ne 1 ]
      then
        echo "`date '+%Y-%m-%d %H:%M:%S'` 	============== Start install mariadb server  =============="
        # 安装 mariadb
        yum install mariadb-${MARIADB_VERSION} mariadb-server-${MARIADB_VERSION} mariadb-libs-${MARIADB_VERSION} mariadb-devel-${MARIADB_VERSION} expect  -y
   
        if [ $? -eq 0 ]
          then 
            echo "`date '+%Y-%m-%d %H:%M:%S'` 		Install mariadb server successfully"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
            sleep 3
            # 启动 mariadb
            systemctl enable mariadb ;  systemctl start mariadb
            if [ $? -eq 0 ]
             then
               echo "`date '+%Y-%m-%d %H:%M:%S'` 	Start mariadb server successfully"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
             else
               echo "`date '+%Y-%m-%d %H:%M:%S'` 	Start mariadb server failed..."   1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
               exit 8
            fi
            # 检测 mariadb 服务端口和服务状态
            MARIADB_PORT=$(netstat -ntplu | grep 3306 | wc -l)
            MARIADB_STATUS=$(systemctl status mariadb | grep running | wc -l)
            if [ ${MARIADB_PORT} -eq 1 ] && [ ${MARIADB_STATUS} -eq 1 ] 
              then
                echo "`date '+%Y-%m-%d %H:%M:%S'` 	Mariadb server port exists or status ok"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
              else
                echo "`date '+%Y-%m-%d %H:%M:%S'` 	Mpache server port no exists or status no ok... "   1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
                exit 9
            fi
            # 初始化数据库
            expect -c "
              spawn mysql_secure_installation
              expect \"Enter current password for root (enter for none):\"
              send \"\r\"
              expect \"Set root password?\"
              send \"y\r\"  
              expect \"New password:\"
              send \"${MARIADB_PASSWORD}\r\"
              expect \"Re-enter new password:\"
              send \"${MARIADB_PASSWORD}\r\"
              
              expect \"Remove anonymous users?\"
              send \"y\r\"
              
              expect \"Disallow root login remotely?\"
              send \"n\r\"
              
              expect \"Remove test database and access to it?\"
              send \"y\r\"
              
              expect \"Reload privilege tables now?\"
              send \"y\r\"
            "
            sleep 2
            # 测试 mariadb 是否能使用
            mysql -uroot -p${MARIADB_PASSWORD} -e "show databases;"
            if [ $? -eq 0 ] 
              then
                echo "`date '+%Y-%m-%d %H:%M:%S'` 	============== Mariadb server init successfully =============="    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
              else 
                echo "`date '+%Y-%m-%d %H:%M:%S'` 	============== Mariadb server init failed... =============="    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
                exit 10
            fi
    
            echo "`date '+%Y-%m-%d %H:%M:%S'` 		============== over install mariadb server =============="   1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
          else 
            echo "`date '+%Y-%m-%d %H:%M:%S'` 		Install mariadb failed"   1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
            exit 10
        fi
      else
        echo "`date '+%Y-%m-%d %H:%M:%S'` 	============== mariadb server installed =============="  1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
   fi
}

#########################
##### Install php #######
#########################

install_php(){
  # PHP 版本控制
  PHP_VERSION=5.4.16

  # 判断 php 是否安装
  PHP_INSTALLED=$(rpm -qa |grep "php-5.4.16" | wc -l)
  if [ ${PHP_INSTALLED} -ne 1 ]
    then
  
      echo "`date '+%Y-%m-%d %H:%M:%S'` 	============== Start install php =============="   1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
      # Install php  
      yum install php-${PHP_VERSION} php-devel-${PHP_VERSION} php-mysql-${PHP_VERSION} php-gd-${PHP_VERSION} php-imap-${PHP_VERSION} php-ldap-${PHP_VERSION} php-odbc-${PHP_VERSION} php-pear php-xml-${PHP_VERSION} php-xmlrpc-${PHP_VERSION} -y
      if [ $? -eq 0 ]
         then
           echo "`date '+%Y-%m-%d %H:%M:%S'` 	Install php server successfully"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
           sleep 3
           # 重新启动 httpd
           systemctl restart httpd
           if [ $? -eq 0 ]
            then
              echo "`date '+%Y-%m-%d %H:%M:%S'` 	Restart apache server successfully"   1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
            else
              echo "`date '+%Y-%m-%d %H:%M:%S'` 	Restart apache server failed..."   1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
              exit 11
           fi
           
           # 判断 info.php 文件是否存在
           if [ ! -f /var/www/html/info.php ]
             then
               cat > /var/www/html/info.php << EOF
               <?php
               phpinfo();
               ?>
EOF
               sleep 2
           fi
           # curl 访问 php
           curl -I 127.0.0.1/info.php | grep "200 OK"
    
           if [ $? -eq 0 ]
             then
               echo "`date '+%Y-%m-%d %H:%M:%S'` 	Php server 访问 successfully"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
             else
               echo "`date '+%Y-%m-%d %H:%M:%S'` 	Php server 访问 failed..."   1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
               exit 12
           fi
    
           echo "`date '+%Y-%m-%d %H:%M:%S'` 		============== over install php =============="    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
         else
           echo "`date '+%Y-%m-%d %H:%M:%S'`	 	Install php server failed"  1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
           exit 13
       fi 
    else
      echo "`date '+%Y-%m-%d %H:%M:%S'` 	============== php server installed =============="    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
  fi
}

remove_lamp(){
 
  #######################
  #### remove apache ####
  #######################
  
  # 首先判断是否安装 apache server
  APACHE_VERSION=2.4.6
  APACHE_INSTALLED=$(rpm -aq | grep httpd-${APACHE_VERSION} | wc -l)
  if [ ${APACHE_INSTALLED} -eq 1  ]
     then
       echo "`date '+%Y-%m-%d %H:%M:%S'` 	Start remove apache server"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
       # 删除http
       REMOVE_HTTPD=`rpm -qa |grep http`
       yum remove -y $REMOVE_HTTPD && rm -rf /var/www  && rm -rf /var/log/httpd
       if [ $? -eq 0 ]
         then
           echo "`date '+%Y-%m-%d %H:%M:%S'` 		Apache server remove successfully ok!"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
         else
           echo "`date '+%Y-%m-%d %H:%M:%S'` 		Apache server remove failed"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
           exit 1
       fi
     else
       echo "`date '+%Y-%m-%d %H:%M:%S'` 	no install apache"  1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
  fi

  ########################
  #### remove mariadb ####
  ########################
 
  # maraidb 是否安装 
  MARIADB_VERSION=5.5.68
  MARIADB_INSTALLED=$(rpm -qa | grep mariadb-${MARIADB_VERSION} | wc -l)
  MARIADB_SERVER_INSTALLED=$(rpm -qa | grep mariadb-server-${MARIADB_VERSION} | wc -l)
  #MARIADB_LIBS_INSTALLD=$(rpm -qa | grep mariadb-libs-${MARIADB_VERSION} | wc -l)
  MARIADB_DEVEL_INSTALLED=$(rpm -qa | grep mariadb-devel-${MARIADB_VERSION} | wc -l)
  
  #判断是否安装 maraidb
  if [ ${MARIADB_INSTALLED} -eq 1 ] && [ ${MARIADB_SERVER_INSTALLED} -eq 1 ] && [ ${MARIADB_DEVEL_INSTALLED} -eq 1 ]
    then
      echo "`date '+%Y-%m-%d %H:%M:%S'` 	Start remove mariadb server"     1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
      yum remove mariadb-${MARIADB_VERSION} mariadb-server-${MARIADB_VERSION} mariadb-libs-${MARIADB_VERSION} mariadb-devel-${MARIADB_VERSION} expect  -y && rm -rf  /etc/my.cnf* && rm -rf /var/lib/mysql
      if [ $? -eq 0 ]
          then
            echo "`date '+%Y-%m-%d %H:%M:%S'` 		Remove mariadb server successfully"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
          else
            echo "`date '+%Y-%m-%d %H:%M:%S'` 		Remove mariadb server failed"  1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
            exit 1
      fi
    else
      echo "`date '+%Y-%m-%d %H:%M:%S'` 	no install mariadb"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
  fi


  ####################
  #### remove php ####
  ####################

  PHP_VERSION=5.4.16

  # 判断 php 是否安装
  #PHP_INSTALLED=$(rpm -qa |grep "php-5.4.16" | wc -l)
  php -v
  if [ $? -eq 0 ]
    then
      echo "`date '+%Y-%m-%d %H:%M:%S'` 	============== Start remove php =============="    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
      yum remove php-${PHP_VERSION} php-devel-${PHP_VERSION} php-mysql-${PHP_VERSION} php-gd-${PHP_VERSION} php-imap-${PHP_VERSION} php-ldap-${PHP_VERSION} php-odbc-${PHP_VERSION} php-pear php-xml-${PHP_VERSION} php-xmlrpc-${PHP_VERSION} php-common-${PHP_VERSION} -y
      if [ $? -eq 0 ]
        then
          echo "`date '+%Y-%m-%d %H:%M:%S'` 	remove php server successfully"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
        else
          echo "`date '+%Y-%m-%d %H:%M:%S'` 	remove php server failed..."    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
          exit 11
      fi
    else
      echo "`date '+%Y-%m-%d %H:%M:%S'`         no install php"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
  fi

}


# lamp log create
lamp_log(){
  
  # 判断 lamp 目录是否存在
  if [ ! -e /var/log/lamp ]
    then
      echo "`date '+%Y-%m-%d %H:%M:%S'`     create dir_lamp and file_lamp    " 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
      mkdir /var/log/lamp && touch /var/log/lamp/lamp_success.log && touch /var/log/lamp/lamp_error.log
  fi
  if [ $? -ne 0 ]
    then 
      echo "log file create failed"
      exit 2
  fi
}

# 主方法,脚本入口
main(){
  #脚本使用说明
  echo "=======请选择======="
  echo "1.install LAMP   【1】"
  echo "2.remove LAMP    【2】"
  echo "3.exit           【3】"
  read -p "输入对应数字即可:" LAMP
   
  # 判断是否输入的是数字
  expr ${LAMP} + 1
  if [ $? -eq 0  ]
    then
      echo "你输入的数字是:${LAMP}"
    else
      echo "你输入的数字是:${LAMP},输入不合法,请输入[1|2|3]"
      exit 2
  fi
   
  # 判断用户输入的值是否匹配,安装,移除
  if [ ${LAMP}  -eq 1 ]
    then
      # 调用方法
      lamp_log
      sleep 2
      prerequisite
      sleep 3
      install_apache
      sleep 3
      install_mariadb
      sleep 3
      install_php
      sleep 1
      echo "`date '+%Y-%m-%d %H:%M:%S'` 	============== LAMP install successfully! =============="     1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
    elif [ ${LAMP} -eq 2 ]
      then
        lamp_log
        remove_lamp       
        echo "`date '+%Y-%m-%d %H:%M:%S'` 	============== LAMP remove successfully! =============="    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
    elif [ ${LAMP} -eq 3 ] 
      then
        echo "`date '+%Y-%m-%d %H:%M:%S'`	 exit install lamp"    1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
        exit 1
    else
      echo "输入不合法,请输入[1|2|3]"    
  fi

}

# 调用主方法
main
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值