天天看點

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

<code>#!/bin/bash</code>

<code>#</code>

<code>#Target: Auto install Discuz!</code>

<code>#Date: 2015-05-02</code>

<code>#Author: Jacken</code>

<code>#QQ:654001593</code>

<code>#QQ Group:170544180</code>

<code>#Version: 1.0</code>

<code>#You should check apr-devel,apr-util-devel,gcc,ncurses-devel,gcc-c++,libxml2,libxml2-devel...before exec script</code>

<code>#You can use yum to install!</code>

<code>#Httpd define path variable</code>

<code>H_FILES=httpd-2.2.29.</code><code>tar</code><code>.gz</code>

<code>H_FILES_DIR=httpd-2.2.29</code>

<code>H_URL=</code><code>'http://mirror.bit.edu.cn/apache/httpd/'</code>

<code>H_PREFIX=</code><code>'/usr/local/apache'</code>

<code>#Mysql define path variable</code>

<code>M_FILES=</code><code>'mysql-5.1.63.tar.gz'</code>

<code>M_FILES_DIR=</code><code>'mysql-5.1.63'</code>

<code>M_URL=</code><code>'http://downloads.mysql.com/archives/mysql-5.1/'</code>

<code>M_PREFIX=</code><code>'/usr/local/mysql'</code>

<code>#Php define path variable</code>

<code>P_FILES=</code><code>'php-5.3.28.tar.bz2'</code>

<code>P_FILES_DIR=</code><code>'php-5.3.28'</code>

<code>P_URL=</code><code>'http://mirrors.sohu.com/php/'</code>

<code>P_PREFIX=</code><code>'/usr/local/php5'</code>

<code>#Discuz define path variable</code>

<code>D_FILES=</code><code>'Discuz_X3.2_SC_UTF8.zip'</code>

<code>D_URL=</code><code>'http://download.comsenz.com/DiscuzX/3.2/'</code>

<code>D_DIR=</code><code>'/var/www/html'</code>

<code>#Only for super user to execute!</code>

<code>if</code> <code>[ $UID -</code><code>ne</code> <code>0 ];</code><code>then</code>

<code>echo</code> <code>'Error,Just for Super user.'</code>

<code>exit</code> <code>2</code>

<code>fi</code>

<code>#Only one arguement</code>

<code>if</code> <code>[ $</code><code># -ne 1 ];then</code>

<code>echo</code> <code>-e </code><code>"\e[31mPlease exec $0 --help\e[0m"</code>

<code>#Must have arguement!</code>

<code>if</code> <code>[ -z </code><code>"$1"</code>  <code>];</code><code>then</code>

<code>#Help and Menu</code>

<code>if</code> <code>[[ </code><code>"$1"</code> <code>== </code><code>'--help'</code> <code>]];</code><code>then</code>

<code>echo</code> <code>-e </code><code>'\e[31mPlease Select Install Menu follow:\e[0m'</code>

<code>echo</code> <code>-e </code><code>'\e[32m1  Install Apache\e[0m'</code>

<code>echo</code> <code>-e</code><code>'\e[33m2  Install Mysql\e[0m'</code>

<code>echo</code> <code>-e </code><code>'\e[34m3  Configure Mysql\e[0m'</code>

<code>echo</code> <code>-e </code><code>'\e[35m4  Install Php\e[0m'</code>

<code>echo</code> <code>-e</code><code>'\e[36m5  Integrate Php and Mysql\e[0m'</code>

<code>echo</code> <code>-e </code><code>'\e[37m6  Configure Discuz\e[0m'</code>

<code>echo</code> <code>-e </code><code>"\e[31mThe Usage: $0 1 or 2 or 3 or 4 or 5 or 6,Only one number\e[0m"</code>

<code>exit</code>

<code>#Must correct option!</code>

<code>if</code> <code>[[ </code><code>"$1"</code> <code>-lt 1 || </code><code>"$1"</code> <code>-gt 6 ]];</code><code>then</code>

<code>##################################################################################################################</code>

<code>#Install Apache</code>

<code>if</code> <code>[[ </code><code>"$1"</code> <code>-</code><code>eq</code> <code>"1"</code> <code>]];</code><code>then</code>

<code>  </code><code>wget -c $H_URL$H_FILES &amp;&amp; </code><code>tar</code> <code>-zxf $H_FILES &amp;&amp; </code><code>cd</code> <code>$H_FILES_DIR &amp;&amp; .</code><code>/configure</code> <code>--prefix=$H_PREFIX &amp;&amp; </code><code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code> 

<code>if</code> <code>[ </code><code>"$?"</code> <code>-</code><code>eq</code> <code>"0"</code> <code>];</code><code>then</code>

<code>echo</code> <code>-e </code><code>'\e[32mApache Server Install Success!\e[0m'</code>

<code>else</code>

<code>echo</code> <code>-e </code><code>'\e[31mApache Server Install Failure!\e[0m'</code>

<code>######################</code>

<code>#Install Mysql DB</code>

<code>if</code> <code>[[ </code><code>"$1"</code> <code>-</code><code>eq</code> <code>"2"</code> <code>]];</code><code>then</code>

<code>  </code><code>wget -c $M_URL$M_FILES &amp;&amp; </code><code>tar</code> <code>-zxf $M_FILES &amp;&amp; </code><code>cd</code> <code>$M_FILES_DIR &amp;&amp; .</code><code>/configure</code> <code>--prefix=$M_PREFIX --</code><code>enable</code><code>-assembler &amp;&amp; </code><code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

<code>echo</code> <code>-e  </code><code>'\e[32mMysql Server Install Success!\e[0m'</code>

<code>echo</code> <code>-e </code><code>'\e[31mMysql Server Install Failure!\e[0m'</code>

<code>#Configure Mysql</code>

<code>if</code> <code>[[ </code><code>"$1"</code> <code>-</code><code>eq</code> <code>"3"</code> <code>]];</code><code>then</code>

<code>\</code><code>cp</code> <code>${M_PREFIX}</code><code>/share/mysql/my-medium</code><code>.cnf  </code><code>/etc/my</code><code>.cnf &amp;&amp; \</code><code>cp</code> <code>${M_PREFIX}</code><code>/share/mysql/mysql</code><code>.server </code><code>/etc/init</code><code>.d</code><code>/mysqld</code> <code>&amp;&amp;  chkconfig --add mysqld &amp;&amp; chkconfig --level 345 mysqld on</code>

<code>#Useradd mysql user</code>

<code>id</code> <code>mysql&gt;</code><code>/dev/null</code> <code>2&gt;&amp;1 || </code><code>useradd</code> <code>mysql</code>

<code>cd</code> <code>$M_PREFIX </code>

<code>chown</code> <code>-R mysql.mysql $M_PREFIX &amp;&amp; ${M_PREFIX}</code><code>/bin/mysql_install_db</code> <code>--user=mysql &gt; </code><code>/dev/null</code> <code>2&gt;&amp;1 &amp;&amp;</code>

<code>chown</code> <code>-R mysql var &amp;&amp; </code><code>/usr/local/mysql/bin/mysqld_safe</code> <code>--user=mysql&amp; &gt; </code><code>/dev/null</code> <code>2&gt;&amp;1 &amp;&amp;</code>

<code>if</code> <code>[ $? -</code><code>eq</code> <code>0 ];</code><code>then</code>

<code>echo</code> <code>-e </code><code>'\e[32mMysql Server Configure Success!\e[0m'</code>

<code>echo</code> <code>-e </code><code>'\e[31mMysql Server Configuue Failure!\e[0m'</code>

<code>#Install Php</code>

<code>if</code> <code>[[ </code><code>"$1"</code> <code>-</code><code>eq</code> <code>"4"</code> <code>]];</code><code>then</code>

<code>wget -c $P_URL$P_FILES &amp;&amp; </code><code>tar</code> <code>-jxf $P_FILES &amp;&amp; </code><code>cd</code> <code>$P_FILES_DIR &amp;&amp; .</code><code>/configure</code>  <code>--prefix=$P_PREFIX  --with-config-</code><code>file</code><code>-path=${P_PREFIX}</code><code>/etc</code>  <code>--with-apxs2=${H_PREFIX}</code><code>/bin/apxs</code> <code>--with-mysql=$M_PREFIX &amp;&amp; </code><code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code> 

<code>echo</code> <code>-e </code><code>'\e[32mPhp Install Success!\e[0m'</code>

<code>echo</code> <code>-e </code><code>'\e[31mPhp Install Failure!\e[0m'</code>

<code># Integrate Php and Mysql</code>

<code>if</code> <code>[[ </code><code>"$1"</code> <code>-</code><code>eq</code> <code>"5"</code> <code>]];</code><code>then</code>

<code>sed</code> <code>-i </code><code>'311a AddType     application/x-httpd-php .php'</code> <code>$H_PREFIX</code><code>/conf/httpd</code><code>.conf &amp;&amp;</code>

<code>sed</code> <code>-i </code><code>'s/index.html/index.php index.html/'</code> <code>$H_PREFIX</code><code>/conf/httpd</code><code>.conf</code>

<code>echo</code> <code>-e </code><code>'\e[32mIntegrate is Success!\e[0m'</code>

<code>echo</code> <code>-e </code><code>'\e[31mIntegrate is Failure!\e[0m'</code>

<code>$H_PREFIX</code><code>/bin/apachectl</code> <code>start &gt;</code><code>/dev/null</code> <code>2&gt;&amp;1</code>

<code>#Configure Discuz</code>

<code>if</code> <code>[[ </code><code>"$1"</code> <code>-</code><code>eq</code> <code>"6"</code> <code>]];</code><code>then</code>

<code>wget -c $D_URL$D_FILES &amp;&amp; unzip $D_FILES -d $H_PREFIX</code><code>/htdocs/</code> <code>&amp;&amp; </code><code>cd</code> <code>$H_PREFIX</code><code>/htdocs/</code> <code>&amp;&amp; \</code><code>mv</code> <code>upload/* . &amp;&amp; </code><code>chmod</code> <code>-R o+w data/ config/ uc_server/ uc_client/</code>

<code>echo</code> <code>-e </code><code>'\e[32mConfigure Discuz Success!\e[0m'</code> <code>&amp;&amp;</code>

<code>#Create discuz database</code>

<code>$M_PREFIX</code><code>/bin/mysql</code> <code>-uroot -e </code><code>'create database discuz'</code> <code>&amp;&amp;</code>

<code>#Grant user password</code>

<code>$M_PREFIX</code><code>/bin/mysql</code> <code>-uroot -e </code><code>"grant all on *.* to discuz@'localhost' identified by 'discuz'"</code> <code>&amp;&amp;</code>

<code>#Flush privileges</code>

<code>$M_PREFIX</code><code>/bin/mysql</code> <code>-uroot -e </code><code>'flush privileges'</code> 

<code>echo</code> <code>-e </code><code>'\e[32mDiscuz Mysql Configure Success!\e[0m'</code>

<code>echo</code> <code>-e </code><code>'\e[31mDiscuz Mysql configure Failure!\e[0m'</code>

<code>#Start Apache Server</code>

<code>$H_PREFIX</code><code>/bin/apachectl</code> <code>start&gt;</code><code>/dev/null</code> <code>2&gt;&amp;1 &amp;&amp; </code>

<code>#Start Mysql Server</code>

<code>$M_PREFIX</code><code>/bin/mysqld_safe</code> <code>--user=mysql&amp;&gt;</code><code>/dev/null</code> <code>2&gt;&amp;1</code>

<code>echo</code> <code>-e </code><code>'\e[32mApache and Mysql Start Success!\e[0m'</code>

<code>echo</code> <code>-e </code><code>'\e[31mApache and Mysql Start Failure!\e[0m'</code>

<code>echo</code> <code>-e </code><code>'\e[31mConfigure Discuz Failure!\e[0m'</code>

提醒:

運作腳本請先 #./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論壇,如下:

注意這裡要和腳本中定義的資料庫名、授權的使用者名、密碼一緻

<a href="http://s3.51cto.com/wyfs02/M02/6C/58/wKiom1VG6buxb8p2AAHrC39khRo367.jpg" target="_blank"></a>

執行安裝!

<a href="http://s3.51cto.com/wyfs02/M00/6C/54/wKioL1VG6yrTPNB5AAJmY4vJy1M148.jpg" target="_blank"></a>

安裝完畢!

<a href="http://s3.51cto.com/wyfs02/M00/6C/58/wKiom1VG6bzR9oLdAAOI13wWEhc274.jpg" target="_blank"></a>

Done!

本文轉自Jacken_yang 51CTO部落格,原文連結:http://blog.51cto.com/linuxnote/1641677,如需轉載請自行聯系原作者