linuxshell指令碼之lnmp的搭建
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
|
#!/bin/bash #this script is source packages installed lnmp for redhat or centos 6.xmal yum -y install wget
#"============download the source package==============" wget http: //cloud .github.com /downloads/libevent/libevent/libevent-2 .0.21-stable. tar .gz
wget http: //nginx .org /download/nginx-1 .3.8. tar .gz
wget http: //www .cmake.org /files/v2 .8 /cmake-2 .8.6. tar .gz
wget http: //ftp .gnu.org /gnu/bison/bison-2 .5.1. tar .gz
wget http: //cdn .mysql.com /Downloads/MySQL-5 .5 /mysql-5 .5.30. tar .gz
wget http: //ncu .dl.sourceforge.net /project/qdbm/qdbm/1 .8.77 /qdbm-1 .8.77. tar .gz
wget http: //ftp .gnu.org /pub/gnu/libiconv/libiconv-1 .14. tar .gz
wget http: //fossies .org /linux/www/gd-2 .0.35. tar .gz
wget http: //sourceforge .net /projects/mcrypt/files/Libmcrypt/2 .5.8 /libmcrypt-2 .5.8. tar .bz2 /download
wget http: //sourceforge .net /projects/mhash/files/mhash/0 .9.9.9 /mhash-0 .9.9.9. tar .bz2 /download
wget http: //sourceforge .net /projects/mcrypt/files/MCrypt/2 .6.8 /mcrypt-2 .6.8. tar .gz /download
wget http: //cronolog .org /download/cronolog-1 .6.2. tar .gz
wget http: //cn2 .php.net /distributions/php-5 .4.14. tar .gz
wget http: //ncu .dl.sourceforge.net /project/pcre/pcre/8 .11 /pcre-8 .11. tar .gz
#"=============download all======================" printf "========install the compile tool=============
yum -y install gcc gcc-c++ openssl-devel ncurses ncurses-devel zlib-devel bzip2 bzip2 -devel curl-devel libjpeg-devel libxml2* libpng* freetype* libxslt*
#yum -y groupinstall "Development" "Development Tools" #or use this command instead of the above #tar the source package 解壓原始碼包到指定的目錄 tar zxvf pcre-8.11. tar .gz -C /usr/local/src/
tar zxvf libevent-2.0.21-stable. tar .gz -C /usr/local/src/
tar zxvf nginx-1.3.8. tar .gz -C /usr/local/src/
tar zxvf cmake-2.8.6. tar .gz -C /usr/local/src/
tar zxvf bison-2.5.1. tar .gz -C /usr/local/src/
tar zxvf mysql-5.5.30. tar .gz -C /usr/local/src/
tar zxvf libiconv-1.14. tar .gz -C /usr/local/src/
tar zxvf qdbm-1.8.77. tar .gz -C /usr/local/src/
tar zxvf gd-2.0.35. tar .gz -C /usr/local/src/
tar zxvf mcrypt-2.6.8. tar .gz -C /usr/local/src/
tar zxvf cronolog-1.6.2. tar .gz -C /usr/local/src/
tar zxvf php-5.4.14. tar .gz -C /usr/local/src/
tar jxvf libmcrypt-2.5.8. tar .bz2 -C /usr/local/src/
tar jxvf mhash-0.9.9.9. tar .bz2 -C /usr/local/src/
#Compile the unpack the source code package 編譯解壓的原始碼包 echo "===========nginx Relevant source package is installed========== "
echo "##### pcre install#####"
cd /usr/local/src/pcre-8 .11/
. /configure --prefix= /usr/local/pcre && make && make install
printf "====pcre is ok====
echo "#####libevent install######"
cd /usr/local/src/libevent-2 .0.21-stable/
. /configure --prefix= /usr/local/libevent && make && make install
printf "====libevent is ok====
echo "####nginx install######"
groupadd -r nginx useradd -r -g nginx -s /bin/false -M nginx
cd /usr/local/src/nginx-1 .3.8/
###before you configure,you can see "./configure –help" see carefully "–with-pcre=DIR set path to PCRE library sources"在編譯之前可以先help看看 . /configure --prefix= /usr/local/nginx --with-pcre= /usr/local/src/pcre-8 .11/ --sbin-path= /usr/local/nginx/sbin/nginx --pid-path= /usr/local/nginx/logs/nginx .pid
--with-http_gzip_static_module --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --user=nginx --group=nginx --http-proxy-temp-path= /var/tmp/nginx/proxy/ --http-fastcgi-temp-path= /var/tmp/nginx/fcgi/ --lock-path= /var/lock/nginx .lock --http-client-body-temp-path= /var/tmp/nginx/client/
&& make && make install
printf "======nginx is ok!!======
mkdir -pv /var/tmp/nginx/
#write startup nginx files by yourself 自己手動寫nginx的啟動指令碼 cat >> /etc/init .d /nginx << EOF
#!/bin/bash # nginx Startup script for the Nginx HTTP Server # it is v.0.0.2 version. # chkconfig: – 85 15 # description: Nginx is a high-performance web and proxy server. # It has a lot of features, but it’s not for everyone. # processname: nginx # pidfile: /var/run/nginx.pid # config: /usr/local/nginx/conf/nginx.conf nginxd= /usr/local/nginx/sbin/nginx
nginx_config= /usr/local/nginx/conf/nginx .conf
nginx_pid= /usr/local/nginx/logs/nginx .pid
RETVAL=0 prog= "nginx"
# Source function library. . /etc/rc .d /init .d /functions
# Source networking configuration. . /etc/sysconfig/network
# Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions. start() { if [ -e $nginx_pid ]; then
echo "nginx already running…."
exit 1
fi echo -n $ "Starting $prog: "
daemon $nginxd -c ${nginx_config} RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
} # Stop nginx daemons functions. stop() { echo -n $ "Stopping $prog: "
killproc $nginxd RETVAL=$? echo [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx .pid
} reload() { echo -n $ "Reloading $prog: "
#kill -HUP `cat ${nginx_pid}` killproc $nginxd -HUP RETVAL=$? echo } # See how we were called. case "$1" in
start) start ;; stop) stop ;; reload) reload ;; restart) stop start ;; status) status $prog RETVAL=$? ;; *) echo "Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac exit $RETVAL
EOF chmod +x /etc/init .d /nginx
chkconfig --add nginx chkconfig --level 35 nginx on service nginx restart echo "===========mysql Relevant source package is installed========== "
useradd -M -s /sbin/nologin mysql
echo "##### cmake install#####"
cd /usr/local/src/cmake-2 .8.6
. /bootstrap && gmake && gmake install
printf "====cmake is ok====
echo "##### bison install#####"
cd /usr/local/src/bison-2 .5.1/
. /configure && make && make install
printf "====bison is ok====
echo "##### mysql install#####"
cd /usr/local/src/mysql-5 .5.30/
cmake -DCMAKE_INSTALL_PREFIX= /usr/local/mysql -DMYSQL_UNIX_ADDR= /tmp/mysql .sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR= /var/mysql/data && make && make install
printf "====mysql is ok====
#set up the mysql configuration file and initialize the database 建立mysql的配置檔案和初始化資料庫 #cp usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf ##if you memory is greater than 2G,please choose this 記憶體大於2G就copy這個配置檔案 cp /usr/local/mysql/support-files/my-medium .cnf /etc/my .cnf
cp /usr/local/mysql/support-files/mysql .server /etc/init .d /mysqld
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir= /usr/local/mysql/ --datadir= /var/mysql/data
/usr/local/mysql/bin/mysqld_safe --user=mysql
chmod -R 755 /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /var/mysql/data
chkconfig --add mysqld chkconfig --level 35 mysqld on service mysqld restart read -p "please set up password for mysql:" pwd
/usr/local/mysql/bin/mysqladmin -u root password $ pwd
export PATH=$PATH: /usr/local/mysql/bin/
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
ln -s /usr/local/mysql/bin/ * /usr/local/bin/
ln -s /usr/local/mysql/lib/ * /usr/lib
ln -s /usr/local/mysql/include/mysql/ * /usr/include/
echo "===========php Relevant source package is installed========== "
echo "####libiconv install####"
cd /usr/local/src/libiconv-1 .14/
. /configure --prefix= /usr/local/libiconv && make && make install
printf "====libiconv is ok====
echo "####qdbm install#####"
cd /usr/local/src/qdbm-1 .8.77/
. /configure --prefix= /usr/local/qdbm -- enable -devel -- enable -zlib -- enable -iconv && make && make install
printf "====qdbm is ok====
echo "####gd install####"
cd /usr/local/src/gd-2 .0.35/
. /configure --prefix= /usr/local/gd2 --with-jpeg --with-png --with-zlib --with-freetype && make && make install
printf "====gd is ok====
sed -i `/*gd_free/avoid (*data);` /usr/local/gd2/include/gd_io .h
echo "/usr/local/gd2/lib" >> /etc/ld .so.conf
ldconfig echo "####libmcrypt and libltdl install####"
cd /usr/local/src/libmcrypt-2 .5.8/
. /configure --prefix= /usr/local/libmcrypt && make && make install
ldconfig cd /usr/local/src/libmcrypt-2 .5.8 /libltdl
. /configure --prefix= /usr/local/libltdl -- enable -ltdl- install && make && make install
ln -sf /usr/local/lib/libmcrypt .* /usr/lib
ln -sf /usr/local/bin/libmcrypt-config /usr/bin
printf "====libmcrypt and libltdl is ok====
echo "####mhash install####"
cd /usr/local/src/mhash-0 .9.9.9/
. /configure --prefix= /usr/local/mhash && make && make install
ln -sf /usr/local/lib/libmhash .* /usr/lib/
printf "====mhash is ok====
echo "####mcrypt install####"
cd /usr/local/src/mcrypt-2 .6.8/
/sbin/ldconfig . /configure --prefix= /usr/local/mcrypt && make && make install
printf "====mcrypt is ok====
echo "####cronolog install####"
cd /usr/local/src/cronolog-1 .6.2
. /configure --prefix= /usr/local/cronolog && make && make install
printf "====cronolog is ok====
echo "####php install#####"
ln -sf /usr/local/mysql/lib/libmysqlclient .so.18 /usr/lib
ln -sf /usr/local/qdbm/lib/libqdbm .so* /usr/lib
cd /usr/local/src/php-5 .4.14
. /configure --prefix= /usr/local/php5 --with-config- file -path= /usr/local/php5/etc --with-mysql= /usr/local/mysql
--with-iconv= /usr/local/libiconv --with-gd= /usr/local/gd2 --with-iconv- dir = /usr/local --with-pdo-mysql= /usr/local/mysql
--with-libxml- dir = /usr --with-qdbm= /usr/local/qdbm --with-mime-magic= /usr/share/file/magic --with-jpeg- dir --with-png- dir --with-freetype- dir
--with-bz2 --with-zlib --without-pear --with-xmlrpc --with-zlib- dir --with-curl --with-curlwrappers --with-mcrypt= /usr/local/libmcrypt --with-mhash
--with-ttf --with-xsl --with-gettext --with-pear --with-openssl -- enable -discard-path -- enable -gd-native-ttf
-- enable -bcmath -- enable -shmop -- enable -sysvsem -- enable -inline-optimization -- enable -mbregex -- enable -xml
-- enable -soap -- enable -calendar -- enable -wddx -- enable -dba -- enable -gd-native-ttf-- enable -calendar -- enable -safe-mode
-- enable - ftp -- enable -fpm -- enable -zip -- enable -mbstring -- enable -bcmath -- enable -sockets -- enable -exif -- enable -magic-quotes --disable-rpath --disable-debug
&& make && make install
printf "====php is ok====
ln -s /usr/local/php5/bin/ * /usr/local/bin/
ln -s /usr/local/php5/sbin/ * /usr/local/sbin/
cp /usr/local/src/php-5 .4.14 /php .ini-production /usr/local/php5/php .ini
#Configure nginx support php 配置nginx支援php環境 cp /usr/local/php5/etc/php-fpm .conf.default /usr/local/php5/etc/php-fpm .conf
sed -i `/run/s/;//g` /usr/local/php5/etc/php-fpm .conf
sed -i `/^ /d` /usr/local/php5/etc/php-fpm .conf
sed -i `s/nobody/nginx/g` /usr/local/php5/etc/php-fpm .conf
sed -i `/start/s/2/20/` /usr/local/php5/etc/php-fpm .conf
sed -i `/min/s/1/5/` /usr/local/php5/etc/php-fpm .conf
sed -i `/max_spare/s/3/25/` /usr/local/php5/etc/php-fpm .conf
sed -i `/max_children/s/5/35/` /usr/local/php5/etc/php-fpm .conf
/usr/local/sbin/php-fpm #啟動php-fpm程式
#test nginx mysql php work tegether sed -i `/<user>/a user nginx;` /usr/local/nginx/conf/nginx .conf #把user改為nginx使用者
sed -i `/<index>/s/index.html index.htm/index.html index.htm index.php/g` /usr/local/nginx/conf/nginx .conf #新增支援index.php
#這下面的六句自己手動的新增到nginx的配置檔案裡面去/usr/local/nginx/conf/nginx.conf # location ~ .php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # include fastcgi.conf; # } cat >> /usr/local/nginx/html/test .php << EOF
<?php $link=mysql_connect( `localhost` , `root` , `123456` );
if ($link) echo "<h1>lian jie mysql cheng gong!!</h1>" ;
mysql_close(); ?> EOF service nginx restart #done all you can test lnmp http://ip(test nginx) or http://ip/test.php(test nginx with mysql php) ##############=========nginx and php-fpm Startup script##################
##############========= #!/bin/bash ##############========= # nginx and php-fpm Startup script for the Nginx HTTP Server ##############========= # chkconfig: – 85 15 ##############========= nginxd=/usr/local/nginx/sbin/nginx ##############========= nginx_config=/usr/local/nginx/conf/nginx.conf ##############========= nginx_pid=/usr/local/nginx/logs/nginx.pid ##############========= php_fpm=/usr/local/sbin/php-fpm ##############========= php_fpm_config=/usr/local/php5/etc/php-fpm.conf ##############========= php_fpm_pid=/usr/local/php5/var/run/php-fpm.pid ##############========= RETVAL=0 ##############========= prog="nginx" ##############========= prog1="php-fpm" ##############========= # Source function library. ##############========= . /etc/rc.d/init.d/functions ##############========= # Source networking configuration. ##############========= . /etc/sysconfig/network ##############========= # Check that networking is up. ##############========= [ ${NETWORKING} = "no" ] && exit 0 ##############========= [ -x $nginxd ] || exit 0 ##############========= # Start nginx daemons functions. ##############========= start() { ##############========= if [ -e $nginx_pid ];then ##############========= echo "nginx already running…." ##############========= exit 1 ##############========= fi ##############========= echo -n $"Starting $prog: " ##############========= RETVAL=$? ##############========= echo ##############========= [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx ##############========= return $RETVAL ##############========= } ##############========= # Stop nginx daemons functions. ##############========= stop() { ##############========= echo -n $"Stopping $prog: " ##############========= killproc $nginxd ##############========= RETVAL=$? ##############========= echo ##############========= [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid ##############========= } ##############========= reload() { ##############========= echo -n $"Reloading $prog: " ##############========= #kill -HUP `cat ${nginx_pid}` ##############========= killproc $nginxd -HUP ##############========= RETVAL=$? ##############========= echo ##############========= } ##############========= # See how we were called. ##############========= case "$1" in ##############========= start) ##############========= start ##############========= $php_fpm -c $php_fpm_config ##############========= echo "starting $prog1:[ok]" ##############========= ;; ##############========= stop) ##############========= stop ##############========= echo $"Stopping $prog1:[ok]" ##############========= killproc $php_fpm ##############========= RETVAL=$? ##############========= ;; ##############========= reload) ##############========= reload ##############========= ;; ##############========= restart) ##############========= stop ##############========= echo $"Stopping $prog1:[ok] " ##############========= killproc $php_fpm ##############========= RETVAL=$? ##############========= start ##############========= $php_fpm -c $php_fpm_config ##############========= echo "starting $prog1:[ok]" ##############========= ;; ##############========= status) ##############========= status $prog ##############========= RETVAL=$? ##############========= ;; ##############========= *) ##############========= echo "Usage: $prog {start|stop|restart|reload|status|help}" ##############========= exit 1 ##############========= esac ##############========= exit $RETVAL #把這個改成啟動指令碼的方法:1.先在linux上面vim /etc/init.d/nginx # 2.把以這個開頭的且包括##############=========都copy到linux的/etc/init.d/nginx檔案中 # 3.用sed命令去掉##############=========這些,然後剩下來的就是nginx和php-fpm的啟動指令碼了 # 4.用sed這樣改 sed -i `s/##############========= //g` /etc/init.d/nginx 直接copy這句,因為要注意#=這個的個數 # 5.sed命令執行後,可以vim看一下,前面的那些已經去掉,然後加許可權 chmod +x /etc/init.d/nginx # 6.然後就可以用 service nginx {start|stop|restart}命令了,執行這個命令時php-fpm也跟著start stop restart copy所有的內容到linux新建的檔案中,然後給檔案賦予許可權,然後執行,自動執行,漫長的過程, 自己執行這個指令碼是木有出錯的 |
本文轉自 jie783213507 51CTO部落格,原文連結:http://blog.51cto.com/litaotao/1248288,如需轉載請自行聯絡原作者
相關文章
- LNMP+FastCGI平臺搭建指令碼LNMPAST指令碼
- lnmp指令碼LNMP指令碼
- lnmp安裝指令碼LNMP指令碼
- LNMP安裝shell指令碼LNMP指令碼
- LNMP自動部署指令碼LNMP指令碼
- shell指令碼:一鍵安裝LAMP、LNMP指令碼指令碼LAMPLNMP
- 12.Linuxshell程式設計(指令碼傳參)Linux程式設計指令碼
- 搭建 lnmp 環境之 nginx 篇LNMPNginx
- lnmp搭建LNMP
- LNMP 原始碼安裝搭建薦LNMP原始碼
- shell之lnmp(nginx-1.0.5+php-fpm5.3.6+mysql)安裝指令碼LNMPNginxPHPMySql指令碼
- LNMP一鍵自動安裝指令碼LNMP指令碼
- LNMP搭建HDwikiLNMP
- 學習centos之快速搭建LNMP環境CentOSLNMP
- docker 學習筆記之實戰 lnmp 環境搭建系列 (2) ------ 手動搭建 lnmp 環境Docker筆記LNMP
- LNMP一鍵自動安裝指令碼薦LNMP指令碼
- linuxshell程式設計實戰-編寫簡單的指令碼實用工具Linux程式設計指令碼
- LNMP 環境搭建LNMP
- 搭建lnmp環境LNMP
- lnmp環境搭建LNMP
- 搭建LNMP架構LNMP架構
- 分析安裝包lnmp中的apache.sh指令碼薦LNMPApache指令碼
- 畫江湖之 docker 篇 【lnmp 環境基礎搭建】DockerLNMP
- 畫江湖之 docker 篇 [lnmp 環境基礎搭建]DockerLNMP
- docker搭建lnmp環境DockerLNMP
- docker 搭建 lnmp 環境DockerLNMP
- 如何搭建LNMP環境LNMP
- ubuntu lnmp環境搭建UbuntuLNMP
- PHP-lnmp 環境搭建PHPLNMP
- Docker LNMP Redis 環境搭建DockerLNMPRedis
- Windows 下搭建 lnmp 環境WindowsLNMP
- LNMP環境搭建(二):NginxLNMPNginx
- Ubuntu16.04搭建LNMPUbuntuLNMP
- Ubuntu14.04搭建LNMPUbuntuLNMP
- LNMP環境搭建——Nginx篇LNMPNginx
- docker下LNMP環境搭建DockerLNMP
- [SHELL]LNMP一鍵安裝指令碼設計(v1.0)LNMP指令碼
- Deepin 15 搭建 LNMP 環境 + swooleLNMP