当前位置: 首页 > news >正文

使用linux脚本部署discuz博客(详细注释版)

使用脚本部署一个discuzz项目

1.显示当前环境状态

防火墙状态

selinux状态

httpd状态

由上可知,虚拟机已处于最初始状态

2.脚本编写

#!/bin/bash
#这是一个通过脚本来部署discuzz博客
firewalld关闭
systemctl stop firewalld
if [ $? -eq 0 ];then 
    echo "firewalld 已关闭"
fi
#selinux设置
fire=`getenforce`
if [ $fire=="Disabled" ];then 
    echo "SELINUX is disabled"
else
    sed -i '/^SELINUX=/s#enforcing#disabled#g' /etc/selinux/config
    seteforce 0 #设置兼容模式
fi
    
#配置yum镜像源
ali_c=`cat /etc/yum.repos.d/CentOS-Base.repo | grep "aliyun"`
if [ $ali_c -ne 0 ];then
        curl -o /etc/yum.repos.d/CentOS-Base.repo wget https://mirrors.aliyun.com/repo/Centos-7.repo
        echo -e " yum镜像源已经配置 "
fi
ali_e=`cat /etc/yum.repos.d//epel.repo | grep "aliyun"`
if [ $ali_e -ne 0 ];then

        curl -o  /etc/yum.repos.d/epel.repo wget https://mirrors.aliyun.com/repo/epel-7.repo
        echo "epel镜像源已经配置"
fi
yum clean all
yum makecache fast
yum repolist
#查看当前是否安装httpd
rpm -qa | grep httpd
if [ $? -eq 0 ];then
    echo  "httpd服务已安装"
else
    yum -y install httpd
fi
#启动httpd服务
echo "正在启动httpd服务。。。。。。"
systemctl start httpd
if [ $? -eq 0 ];then
    echo "httpd启动成功!!"
else 
    echo "httpd启动失败!!"
    exit
fi
systemctl enable httpd
stytemctl status httpd
#测试apache网站
echo "hello world" > /var/www/html/index.html
ip_=`ip a| grep "ens33"|awk 'NR==2{print $2}'|cut -d "/" -f 1`
curl $ip_
if [ $? -eq 0 ];then
    echo "apache测试成功!!!"
else
    echo "apache测试失败!!!"
    exit
fi

#卸载干扰包
mariadb_=`rpm -qa | grep mariadb`
if [ $? -eq 0 ];then 
    echo "开始卸载mariadb干扰包"
    rpm -e $mariadb_ --nodeps 
fi
rpm -qa | grep mariadb
if [ $? -eq 1 ];then 
    echo "mariadb卸载完成"
else
    echo "mariadb卸载失败"
fi
echo "开始安装mysql数据库"
#安装net-tools
yum -y install net-tools
#mysql数据库安装
echo "开始下载mysql数据库rpm安装包"
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-common-5.7.44-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-libs-5.7.44-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-libs-compat-5.7.44-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-client-5.7.44-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-server-5.7.44-1.el7.x86_64.rpm
echo "mysql rpm包下载完成"
#开始安装mysql
#通过awk过滤上面的网址,依次安装
cat discuzz.sh |grep "^wget"|awk -F '/' '{print "rpm -ivh",$9}'
rpm -ivh mysql-community-common-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.44-1.el7.x86_64.rpm
echo "mysql安装成功"

#设置mysql状态
echo "设置mysql状态"
systemctl start mysqld
if [ $? -eq 0 ];then
    echo "mysqld启动成功!!"
else 
    echo "mysqld启动失败!!"
    exit
fi

systemctl enable mysqld
systemctl status mysqld

获取mysql临时密码
em_passwd=`grep "password" /var/log/mysqld.log | awk '{print $11}'`
#登录数据库
echo -e '请复制如下命令修改密码:\nALTER USER "root"@"localhost" identified by "1234Qwert.";\n密码需要包含大小写、数字、字符'
mysql -uroot -p"$tem_passwd"

#安装php
#1.配置php的yum源
echo "配置php的yum源"
wget https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm
#2.安装php
echo "安装php"
yum -y install epel-release
rpm -ivh remi-release-7.rpm
#查看yum仓库
ls /etc/yum.repos.d/
#启用php80的yum源
yum -y install yum-utils
yum-config-manager --enable remi-php80
#安装php80
yum -y install  php80 php80-php php80-php-xml php80-php-xmlrpc php80-php-pecl-mcrypt php80-php-fpm php80-php-pecl-apcu php80-php-mbstring php80-php-gd php80-php-json php80-php-pecl-json-post php80-php-pdo php80-php-mysqlnd php80-php-pecl-mysql php80-php-opcache php80-php-pear php80-php-soap php80-php-intl php80-php-pear php-pear-MDB2-Driver-mysqli.noarch

#3.启动php
echo "启动php"
systemctl  start php80-php-fpm

systemctl status php80-php-fpm

systemctl enable php80-php-fpm
#4.测试php是否安装完成
echo "测试php是否安装完成"
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
ls -l /var/www/html/

5.重启apache
echo "重启httpd中。。。。。。"
systemctl restart httpd
echo "httpd重启完成!!!!!"

curl $ip_
if [ $? -eq 0 ];then
    echo "apache测试成功!!!"
else
    echo "apache测试失败!!!"
    exit
fi
#部署discuz论坛
#1.下载安装包
echo "正在下载discuz。。。。"
wget https://gitee.com/Discuz/DiscuzX/attach_files/2044572/download -O ./cuz.zip
mkdir cuz
#2.解压安装包
yum -y install unzip
unzip cuz.zip -d cuz/
echo "discuz下载完成"
#3.拷贝discuz相关的文件到/var/www/html/
echo "正在拷贝discuz。。。。。。"
rm -rf /var/www/html/*
cp -r cuz/upload/* /var/www/html/
echo "discuz已拷贝到/var/www/html/"
#4.修改文件权限
chmod -R 777 /var/www/html/
echo "查看/var/www/html中的文件"
ls /var/www/html
#5.重启apache 
echo "重启httpd中。。。。。。"
systemctl restart httpd
echo "httpd重启完成!!!!!"
#6.打开网页安装论坛
echo "请访问网址$ip_/install/ 中"

3.结果

相关文章:

  • IMX6ULL的公板的以太网控制器(MAC)与物理层(PHY)芯片(KSZ8081RNB)连接的原理图分析(包含各引脚说明以及工作原理)
  • Cursor 入门教程与最佳实践指南
  • C#中反射的原理介绍及常见的应用场景介绍
  • ResNet 为什么能解决网络退化问题?通过图片分类案例进行验证
  • 解决前端Vue数据不更新的问题:深入分析与解决方案
  • HaProxy源码安装(Rocky8)
  • Deepseek本地部署
  • C#中的静态类以及常见用途
  • 《深度揭秘:DeepSeek如何解锁自然语言处理密码》
  • STM32创建静态库lib
  • 【每日论文】Latent Radiance Fields with 3D-aware 2D Representations
  • STL 语句表编程
  • 破解微服务疑难杂症:2025年全解决方案
  • Spring Cache 详细讲解
  • Jmeter如何计算TPS
  • JVM中的线程池详解:原理→实践
  • 代码随想录 第一章 数组 27.移除元素
  • 菜鸟之路Day15一一IO流(一)
  • Chrome多开终极形态解锁!「窗口管理工具+IP隔离插件
  • 请解释一下Standford Alpaca格式、sharegpt数据格式-------deepseek问答记录
  • 南京艺术学院博导、雕塑家尹悟铭病逝,年仅45岁
  • 价格周报|本周猪价继续下探,机构预计今年猪价中枢有支撑
  • 端午小长假前夜火车票今日开抢,多个技巧提高购票成功率
  • 国税总局上海市税务局通报:收到王某对刘某某及相关企业涉税问题举报,正依法依规办理
  • 专家:家长要以身作则,孩子是模仿者学习者有时也是评判者
  • 商务部回应稀土出口管制问题