Linux Shell十一 脚本安装Discuz

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:
#!/bin/bash
#
#Target: Auto install Discuz!
#Date: 2015-05-02
#Author: Jacken
#QQ:654001593
#QQ Group:170544180
#Version: 1.0
#You should check apr-devel,apr-util-devel,gcc,ncurses-devel,gcc-c++,libxml2,libxml2-devel...before exec script
#You can use yum to install!
#
#
#Httpd define path variable
H_FILES=httpd-2.2.29. tar .gz
H_FILES_DIR=httpd-2.2.29
H_URL= 'http://mirror.bit.edu.cn/apache/httpd/'
H_PREFIX= '/usr/local/apache'
#
#
#Mysql define path variable
M_FILES= 'mysql-5.1.63.tar.gz'
M_FILES_DIR= 'mysql-5.1.63'
M_URL= 'http://downloads.mysql.com/archives/mysql-5.1/'
M_PREFIX= '/usr/local/mysql'
#
#
#Php define path variable
P_FILES= 'php-5.3.28.tar.bz2'
P_FILES_DIR= 'php-5.3.28'
P_URL= 'http://mirrors.sohu.com/php/'
P_PREFIX= '/usr/local/php5'
#
#
#Discuz define path variable
D_FILES= 'Discuz_X3.2_SC_UTF8.zip'
D_URL= 'http://download.comsenz.com/DiscuzX/3.2/'
D_DIR= '/var/www/html'
#
#
#Only for super user to execute!
if      [ $UID - ne      0 ]; then
echo      'Error,Just for Super user.'
exit      2
fi
#
#
#Only one arguement
if      [ $ # -ne 1 ];then
echo      -e  "/e[31mPlease exec $0 --help/e[0m"
exit      2
fi
#
#
#Must have arguement!
if      [ -z  "$1"       ]; then
echo      -e  "/e[31mPlease exec $0 --help/e[0m"
exit      2
fi
#
#
#Help and Menu
if      [[  "$1"      ==  '--help'      ]]; then
echo      -e  '/e[31mPlease Select Install Menu follow:/e[0m'
echo      -e  '/e[32m1  Install Apache/e[0m'
echo      -e '/e[33m2  Install Mysql/e[0m'
echo      -e  '/e[34m3  Configure Mysql/e[0m'
echo      -e  '/e[35m4  Install Php/e[0m'
echo      -e '/e[36m5  Integrate Php and Mysql/e[0m'
echo      -e  '/e[37m6  Configure Discuz/e[0m'
echo      -e  "/e[31mThe Usage: $0 1 or 2 or 3 or 4 or 5 or 6,Only one number/e[0m"
exit
fi
#
#
#Must correct option!
if      [[  "$1"      -lt 1 ||  "$1"      -gt 6 ]]; then
echo      -e  "/e[31mPlease exec $0 --help/e[0m"
exit      2
fi
##################################################################################################################
##################################################################################################################
#Install Apache
if      [[  "$1"      - eq      "1"      ]]; then
   wget -c $H_URL$H_FILES &&  tar      -zxf $H_FILES &&  cd      $H_FILES_DIR && . /configure      --prefix=$H_PREFIX &&  make      &&  make      install 
if      [  "$?"      - eq      "0"      ]; then
echo      -e  '/e[32mApache Server Install Success!/e[0m'
else
echo      -e  '/e[31mApache Server Install Failure!/e[0m'
fi
exit
fi
######################
######################
#Install Mysql DB
if      [[  "$1"      - eq      "2"      ]]; then
   wget -c $M_URL$M_FILES &&  tar      -zxf $M_FILES &&  cd      $M_FILES_DIR && . /configure      --prefix=$M_PREFIX -- enable -assembler &&  make      &&  make      install
if      [  "$?"      - eq      "0"      ]; then
echo      -e   '/e[32mMysql Server Install Success!/e[0m'
else
echo      -e  '/e[31mMysql Server Install Failure!/e[0m'
fi
exit
fi
######################
######################
#Configure Mysql
if      [[  "$1"      - eq      "3"      ]]; then
/ cp      ${M_PREFIX} /share/mysql/my-medium .cnf   /etc/my .cnf && / cp      ${M_PREFIX} /share/mysql/mysql .server  /etc/init .d /mysqld      &&  chkconfig --add mysqld && chkconfig --level 345 mysqld on
#Useradd mysql user
id      mysql> /dev/null      2>&1 ||  useradd      mysql
cd      $M_PREFIX 
chown      -R mysql.mysql $M_PREFIX && ${M_PREFIX} /bin/mysql_install_db      --user=mysql >  /dev/null      2>&1 &&
chown      -R mysql var &&  /usr/local/mysql/bin/mysqld_safe      --user=mysql& >  /dev/null      2>&1 &&
if      [ $? - eq      0 ]; then
echo      -e  '/e[32mMysql Server Configure Success!/e[0m'
else
echo      -e  '/e[31mMysql Server Configuue Failure!/e[0m'
fi
exit
fi
######################
######################
#Install Php
if      [[  "$1"      - eq      "4"      ]]; then
wget -c $P_URL$P_FILES &&  tar      -jxf $P_FILES &&  cd      $P_FILES_DIR && . /configure       --prefix=$P_PREFIX  --with-config- file -path=${P_PREFIX} /etc       --with-apxs2=${H_PREFIX} /bin/apxs      --with-mysql=$M_PREFIX &&  make      &&  make      install 
if      [ $? - eq      0 ]; then
echo      -e  '/e[32mPhp Install Success!/e[0m'
else
echo      -e  '/e[31mPhp Install Failure!/e[0m'
fi
exit
fi
######################
######################
# Integrate Php and Mysql
if      [[  "$1"      - eq      "5"      ]]; then
sed      -i  '311a AddType     application/x-httpd-php .php'      $H_PREFIX /conf/httpd .conf &&
sed      -i  's/index.html/index.php index.html/'      $H_PREFIX /conf/httpd .conf
if      [ $? - eq      0 ]; then
echo      -e  '/e[32mIntegrate is Success!/e[0m'
else
echo      -e  '/e[31mIntegrate is Failure!/e[0m'
fi
$H_PREFIX /bin/apachectl      start > /dev/null      2>&1
exit
fi
######################
######################
#Configure Discuz
if      [[  "$1"      - eq      "6"      ]]; then
wget -c $D_URL$D_FILES && unzip $D_FILES -d $H_PREFIX /htdocs/      &&  cd      $H_PREFIX /htdocs/      && / mv      upload/* . &&  chmod      -R o+w data/ config/ uc_server/ uc_client/
if      [ $? - eq      0 ]; then
echo      -e  '/e[32mConfigure Discuz Success!/e[0m'      &&
 
#Create discuz database
$M_PREFIX /bin/mysql      -uroot -e  'create database discuz'      &&
 
#Grant user password
$M_PREFIX /bin/mysql      -uroot -e  "grant all on *.* to discuz@'localhost' identified by 'discuz'"      &&
 
#Flush privileges
$M_PREFIX /bin/mysql      -uroot -e  'flush privileges' 
if      [ $? - eq      0 ]; then
echo      -e  '/e[32mDiscuz Mysql Configure Success!/e[0m'
else
echo      -e  '/e[31mDiscuz Mysql configure Failure!/e[0m'
fi
######################
######################
#Start Apache Server
$H_PREFIX /bin/apachectl      start> /dev/null      2>&1 && 
#Start Mysql Server
$M_PREFIX /bin/mysqld_safe      --user=mysql&> /dev/null      2>&1
if      [ $? - eq      0 ]; then
echo      -e  '/e[32mApache and Mysql Start Success!/e[0m'
else
echo      -e  '/e[31mApache and Mysql Start Failure!/e[0m'
fi
else
echo      -e  '/e[31mConfigure Discuz Failure!/e[0m'
fi
exit
fi

提醒:

运行脚本请先 #./Auto_Install_Discuz --help

如果要安装Discuz!尽量按编号顺序执行!

Server上的Selinux与Iptables是关闭的,并且环境包都已经yum安装完毕,包含但不限于以下软件

apr-devel,apr-util-devel,gcc,ncurses-devel,gcc-c++,libxml2,libxml2-devel..

当安装完成后便可以直接输入Server的IP直接安装Discuz论坛,如下:

注意这里要和脚本中定义的数据库名、授权的用户名、密码一致

wKiom1VG6buxb8p2AAHrC39khRo367.jpg

执行安装!

wKioL1VG6yrTPNB5AAJmY4vJy1M148.jpg

安装完毕!

wKiom1VG6bzR9oLdAAOI13wWEhc274.jpg

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
86 1
|
26天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
48 2
6种方法打造出色的Shell脚本
|
1月前
|
Linux 测试技术 网络安全
Linux系统之安装OneNav个人书签管理器
【10月更文挑战第19天】Linux系统之安装OneNav个人书签管理器
112 5
Linux系统之安装OneNav个人书签管理器
|
1月前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
55 5
Linux系统之安装Ward服务器监控工具
|
12天前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
34 1
|
16天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
32 5
|
1月前
|
JSON JavaScript Linux
Linux系统之安装cook菜谱工具
【10月更文挑战第15天】Linux系统之安装cook菜谱工具
38 2
Linux系统之安装cook菜谱工具
|
1月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
144 4
Linux系统之Ubuntu安装cockpit管理工具
|
17天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
38 2
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
91 1
Linux系统之Centos7安装cockpit图形管理界面
下一篇
无影云桌面