Linux Shell十一 脚本安装Discuz

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
#!/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

Done!


本文转自Jacken_yang 51CTO博客,原文链接:http://blog.51cto.com/linuxnote/1641677,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
4月前
|
Ubuntu Linux
计算机基础知识:linux系统怎么安装?
在虚拟机软件中创建一个新的虚拟机,并选择相应操作系统类型和硬盘空间大小等参数。将下载的 ISO 镜像文件加载到虚拟机中。启动虚拟机,进入安装界面,并按照步骤进行安装。安装完成后,可以在虚拟机中使用 Linux 系统。
|
4月前
|
Ubuntu Linux
任何Ubuntu用户都应安装的四大Linux应用程序
当然,这款程序不需要太多介绍。我们面对的是网上最庞大最完整的多媒体中心,由于丰富的插件,我们能够高度细化地定制其每一项功能。这是我们的Linux发行版不可或缺的必备软件。 我们可以通过运行以下命令来轻松安装Kodi:sudo apt install kodi。
|
2月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
150 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
3月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
301 0
Linux系统初始化脚本
|
3月前
|
算法 Linux Shell
Linux实用技能:打包压缩、热键、Shell与权限管理
本文详解Linux打包压缩技巧、常用命令与原理,涵盖.zip与.tgz格式操作、跨系统传文件方法、Shell运行机制及权限管理,助你高效使用Linux系统。
Linux实用技能:打包压缩、热键、Shell与权限管理
|
3月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
|
2月前
|
消息中间件 Kafka Linux
Linux下安装Kafka 3.9.1
本文介绍Kafka 3.9.1版本的安装与配置,包括通过ZooKeeper或KRaft模式启动Kafka。涵盖环境变量设置、日志路径修改、集群UUID生成、存储格式化及服务启停操作,适用于Linux环境下的部署实践。
246 0
|
4月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
203 5