天天看點

LNMP自動部署腳本

我們的業務使用了nginx、mysql、php、和tomcat,寫了一個自動化安裝這些軟體的腳本,雖然網上類似的自動安裝腳本很多,但這個是自己寫的,特此mark一下,希望能給别人一些參考,同時也灰常歡迎看到的朋友們提些改進意見。話不多說,直接上腳本。

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

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

296

297

298

299

300

301

302

303

304

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

320

321

322

323

324

325

326

327

328

329

330

331

332

333

334

335

336

337

338

339

340

341

342

343

344

345

346

347

348

349

350

351

352

353

354

<code>#!/bin/sh</code>

<code>    </code><code>alias</code> <code>echo</code><code>=</code><code>'echo -e'</code>

<code>    </code><code>###判斷系統,此腳本隻适用于64位系統</code>

<code>    </code><code>machine=`</code><code>uname</code> <code>-m`</code>

<code>    </code><code>if</code> <code>[ $machine != x86_64 ] ;</code><code>then</code>

<code>       </code><code>echo</code> <code>"\e[1;31m \nyour system is 32bit,but this script is only run on 64bit !\n \e[0m"</code>

<code>       </code><code>exit</code> <code>-1</code>

<code>    </code><code>fi</code> 

<code>    </code><code>###建立儲存下載下傳檔案的目錄</code>

<code>    </code><code>mkdir</code> <code>/usr/local/src/auto_install</code> <code>&amp;&gt; </code><code>/dev/null</code>

<code>    </code><code>source_dir=</code><code>/usr/local/src/auto_install</code>

<code>    </code><code>###定義一個互動式的選擇提示</code>

<code>function</code> <code>interact {</code>

<code>    </code><code>echo</code> <code>"Please input \"yes\" or \"no\""</code>

<code>    </code><code>read</code> <code>choice</code>

<code>    </code><code>case</code> <code>"$choice"</code> <code>in</code>

<code>       </code><code>no)</code>

<code>          </code><code>exit</code> <code>0;;</code>

<code>       </code><code>yes</code><code>)</code>

<code>          </code><code>echo</code><code>;;</code>

<code>        </code><code>*)</code>

<code>      </code><code>echo</code> <code>"\e[1;31mInput Errot! \e[0m"</code>

<code>          </code><code>exit</code> <code>-1;;</code>

<code>    </code><code>esac</code>

<code>}</code>

<code>     </code><code>### 定義一個函數檢查上一條指令的執行狀态</code>

<code>function</code> <code>check {</code>

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

<code>        </code><code>echo</code>  <code>"\e[1;31m\n the last commond exec failed,please check it !\e[0m \n"</code>

<code>    </code><code>sleep</code> <code>1</code>

<code>    </code><code>exit</code> <code>-1</code>

<code>   </code><code>fi</code>

<code>### 定義下載下傳各軟體的函數(此處我隐藏了我們的下載下傳位址,需各位自行設定下載下傳位址)</code>

<code>function</code> <code>download_install_epel {</code>

<code>    </code><code>cd</code> <code>$source_dir</code>

<code>    </code><code>rm</code> <code>-f epel* &amp;&gt; </code><code>/dev/null</code>

<code>    </code><code>echo</code> <code>"\e[1;32m ---yum install epel repo--- \e[0m \n"</code>        

<code>    </code><code>sys_version=`</code><code>uname</code> <code>-r|</code><code>cut</code> <code>-d </code><code>'.'</code> <code>-f 4`</code>

<code>    </code><code>if</code> <code>[ $sys_version = el7 ];</code><code>then</code>

<code>       </code><code>rpm -qa|</code><code>grep</code> <code>-i epel &gt; </code><code>/dev/null</code>

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

<code>          </code><code>wget -nv http:</code><code>//www</code><code>.example.com</code><code>/epel-release-7-2</code><code>.noarch.rpm</code>

<code>          </code><code>rpm -ivh $source_dir</code><code>/epel-release-7-1</code><code>.noarch.rpm</code>

<code>          </code><code>check;</code>

<code>       </code><code>fi</code>

<code>    </code><code>elif</code> <code>[ $sys_version = el6 ];</code><code>then</code>

<code>          </code><code>wget -nv http:</code><code>//www</code><code>.example.com</code><code>/epel-release-6-8</code><code>.noarch.rpm</code>

<code>          </code><code>rpm -ivh $source_dir</code><code>/epel-release-6-8</code><code>.noarch.rpm</code>

<code>    </code><code>fi</code>

<code>function</code> <code>download_nginx {</code>

<code>   </code><code>cd</code> <code>$source_dir</code>

<code>   </code><code>echo</code>  <code>"\e[1;32m\n ---download nginx-1.4.7---\e[0m \n"</code>

<code>   </code><code>ls</code>  <code>nginx-1.4.7.</code><code>tar</code><code>.gz &amp;&gt; </code><code>/dev/null</code>

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

<code>          </code><code>wget -nv  http:</code><code>//www</code><code>.example.com</code><code>/nginx-1</code><code>.4.7.</code><code>tar</code><code>.gz</code>

<code>function</code> <code>download_mysql {</code>

<code>   </code><code>echo</code>  <code>"\e[1;32m\n ---download MySQL-5.5.39---\e[0m \n"</code>

<code>   </code><code>ls</code> <code>mysql-5.5.39-linux2.6-x86_64.</code><code>tar</code><code>.gz &amp;&gt; </code><code>/dev/null</code>

<code>          </code><code>wget -nv  http:</code><code>//www</code><code>.example.com</code><code>/mysql-5</code><code>.5.39-linux2.6-x86_64.</code><code>tar</code><code>.gz</code>

<code>function</code> <code>download_php {</code>

<code>   </code><code>echo</code>  <code>"\e[1;32m\n ---download php-5.3.28---\e[0m \n"</code>

<code>   </code><code>ls</code> <code>php-5.3.28.</code><code>tar</code><code>.gz &amp;&gt; </code><code>/dev/null</code>

<code>           </code><code>wget -nv  http:</code><code>//www</code><code>.example.com</code><code>/php-5</code><code>.3.28.</code><code>tar</code><code>.gz</code>

<code>           </code><code>check;</code>

<code>function</code> <code>download_jre {</code>

<code>    </code><code>echo</code> <code>"\e[1;32m ---download jre-6u33-linux-x64.bin---\e[0m"</code>

<code>    </code><code>ls</code> <code>jre-6u33-linux-x64.bin &amp;&gt; </code><code>/dev/null</code>

<code>       </code><code>wget -nv  http:</code><code>//www</code><code>.example.com</code><code>/jre-6u33-linux-x64</code><code>.bin</code>

<code>       </code><code>check;</code>

<code>       </code><code>###定義依賴包安裝函數</code>

<code>function</code> <code>dependence_install {</code>

<code>    </code><code>download_install_epel;</code>

<code>    </code><code>echo</code> <code>"\e[1;32m ---yum install the Dependencies software--- \e[0m \n"</code>  

<code>    </code><code>pgrep yum|</code><code>xargs</code> <code>kill</code> <code>-9 &gt; </code><code>/dev/null</code>

<code>    </code><code>rm</code> <code>-f </code><code>/var/run/yum</code><code>.pid &gt; </code><code>/dev/null</code>

<code>    </code><code>echo</code> <code>"yum </code><code>install</code> <code>gcc zlib cmake libxml2 libxml2-devel </code><code>bzip2</code> <code>bzip2</code><code>-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype-devel pspell-devel libmcrypt libm</code>

<code>crypt-devel freetype pcre-devel openssl openssl-devel libaio*"</code>

<code>    </code><code>yum -y </code><code>install</code> <code>gcc zlib cmake libxml2 libxml2-devel </code><code>bzip2</code> <code>bzip2</code><code>-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype-devel pspell-devel libmcrypt libmcry</code>

<code>pt-devel freetype pcre-devel openssl openssl-devel libaio* &gt;</code><code>/dev/null</code> <code>2&gt;&amp;1</code>

<code>    </code><code>check;</code>

<code>       </code><code>### 定義mysql安裝函數###</code>

<code>function</code> <code>mysql_install {</code>

<code>    </code> 

<code>       </code><code>###判斷本機是否已在運作mysql,或者開機啟動項有沒有mysql###</code>

<code>       </code><code>###判斷機器上是否以運作mysql執行個體</code>

<code>    </code><code>echo</code> <code>"\e[1;32m \n ---check if there is already installed mysql instence---\e[0m\n"</code>

<code>    </code><code>ps</code> <code>-ef|</code><code>grep</code> <code>-w mysqld|</code><code>grep</code> <code>-</code><code>v</code> <code>"grep"</code> <code>&amp;&gt; </code><code>/dev/null</code>

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

<code>       </code><code>mysqlbasedir=`</code><code>ps</code> <code>-ef|</code><code>grep</code> <code>-w </code><code>"mysqld"</code><code>|</code><code>grep</code> <code>-</code><code>v</code> <code>"grep"</code><code>|</code><code>awk</code> <code>'{print $9}'</code><code>|</code><code>tr</code> <code>-d </code><code>'\-\-'</code><code>`</code>

<code>       </code><code>mysqldatadir=`</code><code>ps</code> <code>-ef|</code><code>grep</code> <code>-w </code><code>"mysqld"</code><code>|</code><code>grep</code> <code>-</code><code>v</code> <code>"grep"</code><code>|</code><code>awk</code> <code>'{print $10}'</code><code>|</code><code>tr</code> <code>-d </code><code>'\-\-'</code><code>`</code>

<code>       </code><code>echo</code> <code>"\e[1;32m your system has run a mysql instance already \n mysqlbasedir is: "</code><code>$mysqlbasedir</code><code>"\n mysqldatadir is: "</code><code>$mysqldatadir</code><code>"\n do you still want to install a new mysql-server? \e[0m\n"</code>

<code>       </code><code>interact;</code>

<code>        </code><code>###判斷系統是否已經有rpm方式安裝的mysql</code>

<code>     </code><code>echo</code> <code>"MySQL-server-5.5.39-2.el6.x86_64.rpm"</code><code>|</code><code>while</code> <code>read</code> <code>line</code>

<code>     </code><code>do</code>

<code>         </code><code>prefix=`</code><code>echo</code> <code>"$line"</code><code>|</code><code>awk</code> <code>-F </code><code>"-"</code> <code>'{print $1"-"$2}'</code><code>`                             </code><code>##to get like "MySQL-server"</code>

<code>         </code><code>rpm -qa|</code><code>grep</code> <code>-i </code><code>"$prefix"</code> <code>&amp;&gt; </code><code>/tmp/check_mysql</code><code>.log</code>

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

<code>           </code><code>already_install=`</code><code>cat</code> <code>/tmp/check_mysql</code><code>.log|</code><code>awk</code> <code>-F </code><code>"-"</code> <code>'{print $1"-"$2"-"$3}'</code><code>`   </code><code>##to get the already installed mysql version</code>

<code>           </code><code>echo</code> <code>"\e[1;31m ---the $already_install is already installed by rpm!--- \n ---Do you really want to install a new mysql?--- \e[0m\n"</code>

<code>           </code><code>interact;</code>

<code>         </code><code>fi</code>

<code>      </code><code>done</code>

<code>        </code><code>###判斷chkconfig裡面是否有mysql啟動腳本并且為開機啟動</code>

<code>    </code><code>chkconfig |</code><code>grep</code> <code>mysql|</code><code>awk</code> <code>'{print $5" "$7}'</code><code>|</code><code>grep</code> <code>-e </code><code>"啟用"</code> <code>-e </code><code>"on"</code> <code>&amp;&gt; </code><code>/dev/null</code>

<code>       </code><code>echo</code> <code>" there is a bootstart mysql script in the chkconfig,please check"</code>

<code>       </code><code>exit</code> <code>0</code>

<code>       </code> 

<code>        </code><code>###判斷/etc/rc.local檔案裡是否有mysql啟動指令</code>

<code>    </code><code>cat</code> <code>/etc/rc</code><code>.</code><code>local</code><code>|</code><code>grep</code> <code>"mysqld"</code> <code>&amp;&gt; </code><code>/dev/null</code>

<code>       </code><code>echo</code> <code>" there is a bootstart mysql commond in the /etc/rc.local,please check it"</code>

<code>    </code><code>fi</code>   

<code>        </code><code>######判斷結束######</code>

<code>    </code><code>###檢查是否有系統自帶的mysql-lib-5.1,有則删除</code>

<code>    </code><code>rpm -qa|</code><code>grep</code> <code>-i -e </code><code>"mysql.*5\.1.*"</code><code>|</code><code>xargs</code> <code>rpm -e --nodeps 2&gt; </code><code>/dev/null</code>

<code>        </code><code>###互動式選擇mysql安裝路徑</code>

<code>    </code><code>echo</code>  <code>"\e[1;31m where do you want to install mysql(default is /usr/local/mysql)\e[0m"</code>

<code>    </code><code>read</code> <code>mybasedir</code>

<code>    </code><code>if</code> <code>[ </code><code>"$mybasedir"</code> <code>= </code><code>""</code> <code>];</code><code>then</code>

<code>       </code><code>mybasedir=</code><code>/usr/local/mysql</code>

<code>       </code><code>###選擇data目錄</code>

<code>    </code><code>echo</code>  <code>"\e[1;31m where do you want to storage mysql data(default is /usr/local/mysql/data)\e[0m"</code>

<code>    </code><code>read</code> <code>mydatadir</code>

<code>    </code><code>if</code> <code>[ </code><code>"$mydatadir"</code> <code>= </code><code>""</code> <code>];</code><code>then</code>

<code>       </code><code>mydatadir=</code><code>/usr/local/mysql/data</code>

<code>    </code><code>fi</code>    

<code>       </code><code>###開始安裝mysql</code>

<code>    </code><code>echo</code> <code>"\e[1;32m ---now start to install mysql---\e[0m\n"</code>

<code>    </code><code>#dependence_install;</code>

<code>    </code><code>echo</code> <code>"\e[1;32m ---add user mysql---\e[0m"</code>

<code>    </code><code>useradd</code> <code>mysql -s </code><code>/sbin/nologin</code>

<code>    </code><code>echo</code> <code>"\e[1;32m\n ---unpack mysql-5.5.39-linux2.6-x86_64.tar.gz---\e[0m"</code>

<code>    </code><code>tar</code> <code>zxf mysql-5.5.39-linux2.6-x86_64.</code><code>tar</code><code>.gz</code>

<code>    </code><code>rm</code> <code>-rf $mybasedir</code>

<code>    </code><code>mv</code> <code>mysql-5.5.39-linux2.6-x86_64 $mybasedir</code>

<code>       </code><code>###判斷/etc下是否有my.cnf,若有,重命名為my.cnf.bak</code>

<code>    </code><code>ls</code> <code>/etc/my</code><code>.cnf &amp;&gt; </code><code>/dev/null</code>

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

<code>       </code><code>\</code><code>mv</code> <code>/etc/my</code><code>.cnf </code><code>/etc/my</code><code>.cnf.bak</code>

<code>       </code><code>echo</code> <code>"\e[1;32m\n ---detected /etc/my.cnf is already exit,rename it to /etc/my.cnf.bak--- \e[0m \n"</code>

<code>    </code><code>cp</code> <code>$mybasedir</code><code>/support-files/my-huge</code><code>.cnf </code><code>/etc/my</code><code>.cnf</code>

<code>       </code><code>###拷貝開機啟動腳本到/etc/init.d/</code>

<code>    </code><code>ls</code> <code>/etc/init</code><code>.d</code><code>/mysql</code> <code>&amp;&gt; </code><code>/dev/null</code>

<code>       </code><code>\</code><code>mv</code> <code>/etc/init</code><code>.d</code><code>/mysql</code> <code>/etc/init</code><code>.d</code><code>/mysql</code><code>.bak</code>

<code>       </code><code>echo</code> <code>"\e[1;32m ---detected /etc/init.d/mysql is already exit,rename it to /etc/init.d/mysql.bak---\e[0m"</code>

<code>    </code><code>cp</code> <code>$mybasedir</code><code>/support-files/mysql</code><code>.server </code><code>/etc/init</code><code>.d</code><code>/mysql</code>

<code>       </code><code>###修改/etc/init.d/mysql腳本裡面basedir和datadir</code>

<code>    </code><code>sed</code> <code>-i -e </code><code>"/^basedir*=$/i\basedir=$mybasedir"</code> <code>-e </code><code>"/^datadir*=$/i\datadir=$mydatadir"</code> <code>/etc/init</code><code>.d</code><code>/mysql</code>

<code>    </code><code>sed</code> <code>-i -e </code><code>'/^basedir*=$/d'</code> <code>-e </code><code>'/^datadir*=$/d'</code> <code>/etc/init</code><code>.d</code><code>/mysql</code>   

<code>       </code><code>###初始化資料庫</code>

<code>    </code><code>echo</code> <code>"\e[1;32m\n ---initialize mysql database---\e[0m"</code>

<code>    </code><code>chown</code> <code>-R mysql $mydatadir $mybasedir &gt;</code><code>/dev/null</code> <code>2&gt;&amp;1</code>

<code>    </code><code>$mybasedir</code><code>/scripts/mysql_install_db</code> <code>--defaults-</code><code>file</code><code>=</code><code>/etc/my</code><code>.cnf --user=mysql --basedir=$mybasedir --datadir=$mydatadir</code>

<code>       </code><code>###将basedir/bin/添加到PATH</code>

<code>    </code><code>echo</code> <code>"PATH=$PATH:$mybasedir/bin"</code> <code>&gt;&gt; </code><code>/etc/profile</code>

<code>    </code><code>export</code> <code>PATH=$PATH:$mybasedir</code><code>/bin</code>

<code>    </code><code>echo</code> <code>"\e[1;32m install mysql success,you can run \"service mysql start\" to start the mysql \n do not forget to set a password for mysql \e[0m"</code>

<code>    </code><code>###至此mysql安裝完畢</code>

<code>    </code><code>### 定義nginx安裝函數</code>

<code>function</code> <code>nginx_install {</code>

<code>    </code><code>echo</code>

<code>    </code><code>echo</code> <code>"\e[1;32m ---start installing nginx,it's basedir is /usr/local/nginx--- \e[0m \n"</code>

<code>    </code><code>ls</code> <code>-l |</code><code>grep</code> <code>"^d"</code><code>|</code><code>grep</code> <code>nginx|</code><code>xargs</code> <code>rm</code> <code>-rf &amp;&gt; </code><code>/dev/null</code>

<code>    </code><code>tar</code> <code>zxf nginx-1.4.7.</code><code>tar</code><code>.gz</code>

<code>    </code><code>cd</code> <code>nginx-1.4.7</code>

<code>echo</code> <code>"\e[1;32m ---configure: configure information in /tmp/configure_nginx.log--- \e[0m \n"</code>

<code>    </code><code>.</code><code>/configure</code> <code>--with-http_stub_status_module  --prefix=</code><code>/usr/local/nginx</code> <code>&amp;&gt; </code><code>/tmp/configure_nginx</code><code>.log</code>

<code>echo</code> <code>"\e[1;32m ---make: make information in /tmp/make_nginx.log--- \e[0m \n"</code>

<code>    </code><code>make</code> <code>&amp;&gt; </code><code>/tmp/configure_nginx</code><code>.log</code>

<code>echo</code> <code>"\e[1;32m ---make install: install into /usr/local/nginx--- \e[0m \n"</code>

<code>    </code><code>make</code> <code>install</code> <code>&amp;&gt; </code><code>/tmp/make_install</code><code>.log</code>

<code>    </code><code>echo</code> <code>"\e[1;32m nginx is installed successfully \e[0m \n"</code>

<code>    </code><code>### 定義php安裝函數</code>

<code>function</code> <code>php_install {</code>

<code>    </code><code>dependence_install;</code>

<code>    </code><code>ls</code> <code>-l |</code><code>grep</code> <code>"^d"</code><code>|</code><code>grep</code> <code>php|</code><code>xargs</code> <code>rm</code> <code>-rf &amp;&gt; </code><code>/dev/null</code>

<code>    </code><code>tar</code> <code>zxvf php-5.3.28.</code><code>tar</code><code>.gz &amp;&gt; </code><code>/dev/null</code>

<code>    </code><code>cd</code> <code>php-5.3.28</code>

<code>    </code><code>echo</code> <code>"\e[1;32m ---configure php: information in /tmp/php_configure.log--- \e[0m \n"</code>

<code>    </code><code>echo</code> <code>"./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql --with-mysqli  --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-iconv-dir=/usr/local --with-zlib --enable-zip --with-curl"</code>

<code>    </code><code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/php</code> <code>--with-config-</code><code>file</code><code>-path=</code><code>/usr/local/php/etc</code> <code>--with-mysql --with-mysqli  --with-freetype-</code><code>dir</code> <code>--with-jpeg-</code><code>dir</code> <code>--with-png-</code><code>dir</code> <code>--with-zlib --with-libxml-</code><code>dir</code><code>=</code><code>/usr</code> <code>--</code><code>enable</code><code>-xml --disable-rpath --</code><code>enable</code><code>-discard-path --</code><code>enable</code><code>-safe-mode --</code><code>enable</code><code>-bcmath --</code><code>enable</code><code>-shmop --</code><code>enable</code><code>-sysvsem --</code><code>enable</code><code>-inline-optimization --with-curlwrappers --</code><code>enable</code><code>-mbregex --</code><code>enable</code><code>-fastcgi --</code><code>enable</code><code>-fpm --</code><code>enable</code><code>-force-cgi-redirect --</code><code>enable</code><code>-mbstring --with-mcrypt --with-gd --</code><code>enable</code><code>-gd-native-ttf --with-openssl --with-mhash --</code><code>enable</code><code>-pcntl --</code><code>enable</code><code>-sockets --with-iconv-</code><code>dir</code><code>=</code><code>/usr/local</code> <code>--with-zlib --</code><code>enable</code><code>-zip --with-curl &amp;&gt; </code><code>/tmp/php_configure</code><code>.log</code>

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

<code>    </code><code>echo</code> <code>"\e[1;32m ---make php: information in /tmp/php_make.log--- \e[0m \n"</code>

<code>    </code><code>make</code> <code>&amp;&gt; </code><code>/tmp/php_make</code><code>.log</code>

<code>    </code><code>###make install</code>

<code>    </code><code>echo</code> <code>"\e[1;32m ---make install php: install into /usr/local/php--- \n ---php cofigure file in the /usr/local/php/etc--- \e[0m \n"</code>

<code>    </code><code>make</code> <code>install</code> <code>&gt; </code><code>/tmp/make_install_php</code><code>.log</code>

<code>    </code><code>echo</code> <code>"\e[1;32m ---prepare php configure files--- \e[0m \n"</code>

<code>    </code><code>echo</code> <code>"cp $source_dir/php-5.3.28/php.ini-production /usr/local/php/etc/php.ini"</code>

<code>    </code><code>cp</code> <code>php.ini-production </code><code>/usr/local/php/etc/php</code><code>.ini</code>

<code>    </code><code>echo</code> <code>"cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf"</code>

<code>    </code><code>cp</code> <code>/usr/local/php/etc/php-fpm</code><code>.conf.default </code><code>/usr/local/php/etc/php-fpm</code><code>.conf</code>

<code>    </code><code>echo</code> <code>"\e[1;32m\n php is installed successfully!\n now,please start php and modification the php.ini \e[0m"</code>

<code>    </code><code>###安裝jre</code>

<code>function</code> <code>jre_install {</code>

<code>    </code><code>###删除系統自帶的java</code>

<code>    </code><code>rpm -qa|</code><code>grep</code> <code>java|</code><code>xargs</code> <code>rpm -e --nodeps</code>

<code>    </code><code>rm</code> <code>-rf jre1.6.0_33 &amp;&gt; </code><code>/dev/null</code>

<code>    </code><code>chmod</code> <code>+x jre-6u33-linux-x64.bin &amp;&gt; </code><code>/dev/null</code>

<code>    </code><code>.</code><code>/jre-6u33-linux-x64</code><code>.bin &gt;</code><code>/dev/null</code> <code>2&gt;&amp;1</code>

<code>    </code><code>ls</code> <code>-d </code><code>/usr/java</code>

<code>       </code><code>mkdir</code> <code>/usr/java</code> <code>&amp;&gt; </code><code>/dev/null</code>

<code>    </code><code>else</code>

<code>       </code><code>echo</code> <code>echo</code> <code>"\e[1;31m /usr/java has already exits,move to /usr/java_bak !\e[0m"</code>

<code>       </code><code>mkdir</code> <code>/usr/java_bak</code>  <code>&amp;&gt; </code><code>/dev/null</code>

<code>       </code><code>mv</code> <code>/usr/java/</code><code>* </code><code>/usr/java_bak/</code>

<code>    </code><code>mv</code>  <code>jre1.6.0_33 </code><code>/usr/java/</code>

<code>    </code><code>echo</code> <code>"\e[1;32m\n ---add java path to /etc/profile---\e[0m"</code>

<code>    </code><code>echo</code>  <code>&gt;&gt;</code><code>/etc/profile</code>

<code>    </code><code>echo</code> <code>'JAVA_HOME=/usr/java/jre1.6.0_33'</code><code>&gt;&gt;</code><code>/etc/profile</code>

<code>    </code><code>echo</code> <code>'CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar'</code><code>&gt;&gt;</code><code>/etc/profile</code>

<code>    </code><code>echo</code> <code>'PATH=$JAVA_HOME/bin:$PATH:$HOME/bin:$JAVA_HOME/jre/bin'</code><code>&gt;&gt;</code><code>/etc/profile</code>

<code>    </code><code>echo</code> <code>'export  PATH JAVA_HOME'</code><code>&gt;&gt;</code><code>/etc/profile</code>

<code>    </code><code>source</code> <code>/etc/profile</code>

<code>    </code><code>echo</code> <code>"\e[1;32m\n JRE is installed success !\e[0m"</code>

<code>    </code><code>echo</code> <code>"\e[1;32m\n ---install cronolog---\e[0m"</code>

<code>    </code><code>wget -nv http:</code><code>//www</code><code>.example.com</code><code>/cronolog-1</code><code>.6.2.</code><code>tar</code><code>.gz</code>

<code>    </code><code>tar</code> <code>zxf cronolog-1.6.2.</code><code>tar</code><code>.gz</code>

<code>    </code><code>cd</code> <code>cronolog-1.6.2</code>

<code>    </code><code>.</code><code>/configure</code> <code>&amp;&gt; </code><code>/tmp/cronolog_configure</code><code>.log &amp;&amp; </code><code>make</code> <code>&gt; </code><code>/dev/null</code> <code>&amp;&amp; </code><code>make</code> <code>install</code> <code>&gt; </code><code>/dev/null</code>

<code>    </code><code>echo</code> <code>"\e[1;32m cronolog is installed success\e[0m\n"</code>

<code>    </code><code>###下面開始選擇那些軟體需要安裝</code>

<code>echo</code> <code>"\e[1;31m\n ---選擇哪些軟體需要安裝--- \e[0m \n"</code>

<code>echo</code> <code>"\e[1;32m \"Nginx\"      INPUT \"1\" \e[0m \n"</code>

<code>echo</code> <code>"\e[1;32m \"Mysql\"      INPUT \"2\" \e[0m \n"</code>

<code>echo</code> <code>"\e[1;32m \"Php\"        INPUT \"3\" \e[0m \n"</code>

<code>echo</code> <code>"\e[1;32m \"JRE\"        INPUT \"4\" \e[0m \n"</code>

<code>#echo "\e[1;32m \"Tomcat\"     INPUT \"5\" \e[0m \n"</code>

<code>read</code> <code>-p </code><code>"please choice which software do you want to install ?"</code> <code>input</code>

<code>    </code><code>if</code> <code>[ $input = 1 ];</code><code>then</code>

<code>           </code><code>download_nginx;</code>

<code>           </code><code>dependence_install;</code>

<code>           </code><code>nginx_install;</code>

<code>    </code><code>elif</code> <code>[ $input = 2 ];</code><code>then</code>

<code>       </code><code>download_mysql;</code>

<code>           </code><code>mysql_install;</code>

<code>    </code><code>elif</code> <code>[ $input = 3 ];</code><code>then</code>

<code>           </code><code>echo</code> <code>"\e[1;32m\n php needs mysqlclient \e[0m"</code>

<code>           </code><code>echo</code> <code>"\e[1;32m so if you had already install a mysqlclient\n please make a softlink for all \"libmysqlclient.so.*\" file to both /var/lib64 and /var/lib \e[0m\n"</code>

<code>           </code><code>echo</code> <code>"\e[1;31m Please input your choice\n\e[0m \e[1;32m1: go on by default\(install mysql-client-5.5.39\)\n 2: I will check my \"libmysqlclient.so.*\" file and redo this script later\n 3: I had make the softlinks and I want to going on \e[0m"</code>

<code>           </code><code>read</code> <code>choice</code>

<code>           </code><code>case</code> <code>"$choice"</code> <code>in</code>

<code>             </code><code>1)</code>

<code>               </code><code>cd</code> <code>$sourcedir</code>

<code>               </code><code>echo</code> <code>"\e[1;32m ---download mysql-client rpm files---\e[0m"</code>

<code>               </code><code>wget -nv http:</code><code>//www</code><code>.example.com</code><code>/MySQL-client-5</code><code>.5.39-2.el6.x86_64.rpm</code>

<code>               </code><code>wget -nv http:</code><code>//www</code><code>.example.com</code><code>/MySQL-devel-5</code><code>.5.39-2.el6.x86_64.rpm</code>

<code>               </code><code>wget -nv http:</code><code>//www</code><code>.example.com</code><code>/MySQL-shared-5</code><code>.5.39-2.el6.x86_64.rpm</code>

<code>               </code><code>echo</code> <code>"\e[1;32m\n ---install mysql-client in the way of rpm---\e[0m"</code>

<code>               </code><code>sleep</code> <code>1</code>

<code>               </code><code>rpm -ivh MySQL-client-5.5.39-2.el6.x86_64.rpm MySQL-devel-5.5.39-2.el6.x86_64.rpm MySQL-shared-5.5.39-2.el6.x86_64.rpm</code>

<code>               </code><code>download_php;</code>

<code>               </code><code>###make soft link from /usr/lib64/libmysqlclient* to /usr/lib/</code>

<code>               </code><code>ls</code> <code>-l </code><code>/usr/lib64/libmysqlclient</code><code>*|</code><code>grep</code> <code>-</code><code>v</code> <code>"^l"</code><code>|</code><code>awk</code> <code>'{print $NF}'</code><code>|</code><code>while</code> <code>read</code> <code>line</code>

<code>                 </code><code>do</code>

<code>                   </code><code>usrlib_fulldir=`</code><code>ls</code> <code>-l </code><code>/usr/lib64/libmysqlclient</code><code>*|</code><code>grep</code> <code>-</code><code>v</code> <code>"^l"</code><code>|</code><code>awk</code> <code>'{print $NF}'</code><code>|</code><code>sed</code> <code>'s/lib64/lib/'</code><code>`</code>

<code>                   </code><code>ln</code> <code>-s $line $usrlib_fulldir</code>

<code>                 </code><code>done</code>

<code>               </code> 

<code>               </code><code>php_install;</code>

<code>               </code><code>;;</code>

<code>            </code><code>2)</code>

<code>               </code><code>exit</code> <code>0;;</code>

<code>            </code><code>3)</code>

<code>            </code><code>*)</code>

<code>               </code><code>echo</code> <code>"Input Errot!"</code> <code>&amp;&amp; </code><code>exit</code> <code>-1;;</code>

<code>          </code><code>esac</code>

<code>     </code><code>elif</code> <code>[ $input = 4 ];</code><code>then</code>

<code>           </code><code>download_jre;</code>

<code>           </code><code>jre_install;</code>

<code>     </code><code>else</code>

<code>       </code><code>echo</code> <code>"\e[1;31m your input is worng!\e[0m"</code>

<code>       </code><code>sleep</code> <code>1</code>

<code>     </code><code>fi</code>

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