Linux Shell十一 脚本安装Discuz

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论坛,如下:

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

Linux Shell十一 脚本安装Discuz

执行安装!

Linux Shell十一 脚本安装Discuz

安装完毕!

Linux Shell十一 脚本安装Discuz

Done!


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

上一篇:PowerShell 多线程测试IP端口


下一篇:mysql安装初始密码不是空的,怎么办