LAMP&LNMP自动化安装脚本

===================================

一、脚本的环境介绍

二、脚本的介绍

三、脚本的功能介绍

===================================

一、脚本的环境介绍

此脚本运行在RHEL 6.4版本上

运行此脚本需注意:

1)、主机需要能够上网,因为博主是搭建的搜狐的外网yum源,此yum源由两部分组成,一个是光盘里面的所有软件包,一个是epel源。

2)、需了解软件之间的相互依赖性。

二、脚本的介绍

脚本是由函数组成,每一个函数实现一个功能

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
functioncreate_yum #此函数是搭建sohu的yum仓库
functiondownload #此函数是下载全部所需的软件包
functioninstall_apache #此函数是安装apache软件包
functionconfig_apache #此函数是修改apache的服务脚本和开启
apache服务
functioninstall_nginx #此函数是安装nginx软件包
functioninstall_mysql #此函数是安装mysql软件包
functionconfig_mysql #此函数是初始化mysql和开启mysql的服务
functioninstall_php #此函数是安装php软件包
functionconfig_php #此函数提供php的配置文件
functioninstall_php_fpm #此函数是安装php-fpm软件包提供fastcgi服务
functionconfig_php_fpm #此函数是修改php-fpm的配置文件盒开启
php-fpm的服务
functioninstall_xcache #此函数是安装为php代码加速的软件包
functioninstall_memcache #此函数是安装连接memcached的软件包
functioninstall_memcached #此函数是安装memcached软件包
functioninstall_lamp #此函数里面只包含了apache,mysql,php的函数
functionconfig_lamp
functioninstall_lammp #此函数里面只包含了apache,mysql,
memcached,php的函数
functionconfig_lammp
functioninstall_lnmp #此函数里面只包含了nginx,mysql,php的函数
functionconfig_lnmp
functioninstall_lnmmp #此函数里面只包含了nginx,mysql,
memcached,php的函数
functionconfig_lnmmp

如果各位博友觉得配置文件的路径存放数据的路径与各位博友所要求的结果不一样,那请各位博友只需小小的自行修改一下

三、脚本的功能介绍

1)、支持某台机器单独安装某一个软件,如apache、nginx、mysql、php-fpm,memcached

2)、支持某台机器直接安装lamp、lnmp、lammp、lnmmp架构

3)、如果想一个一个的安装lamp(lnmp)架构,请注意安装顺序:apache(nginx)-->

mysql-->php

4)、php与php-fpm其实都是安装php源码软件包,但是提供的功能不一样

如果你的apache与php安装在不同的机器上,那么php的那台主机安装的是

php-fpm;

如果你的php与mysql安装在不同的机器上,那么php的那台主机也是安装

php-fpm;

php-fpm与memcached安装在不同的机器上,那么php-fpm的那台主机必须安装memcache,用于连接memcached。

5)、安装完每个脚本后,会把源码包生成的文件与系统能识别的头文件、库文件、二进制中

6)、会为服务提供system V 脚本文件

7)、会自行的把服务开启,并加入到开机自动启动的服务列表中


整个脚本

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
#!/bin/bash
#discripte:frist,you linux server must be surf Internet because we use http://mirrors.sohu.com/ yum source and epel source
functioncreate_yum {
dir=/etc/yum.repos.d/
mv$dir/*.repo /tmp
cat>> $dir/sohu.repo <<EOF
[centos]
name=sohu-centos
baseurl=http://mirrors.sohu.com/centos/\$releasever/os/\$basearch
gpgcheck=1
enable=0
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-6
[epel]
name=sohu-epel
baseurl=http://mirrors.sohu.com/fedora-epel/\$releasever/\$basearch/
enable=1
gpgcheck=0
EOF
yum clean all &>/dev/null
}
functiondownload {
yum -y installwget
cd/root
echo-e "\033[32m=========download about web server source package==========\033[0m"
wget http://mirror.esocc.com/apache/apr/apr-1.4.6.tar.bz2
wget http://mirror.esocc.com/apache/apr/apr-util-1.5.2.tar.bz2
wget http://mirror.esocc.com/apache/httpd/httpd-2.4.6.tar.bz2
wget http://nginx.org/download/nginx-1.4.2.tar.gz
echo-e "\033[32m=========download about php or php-fpm soure package========\033[0m"
wget http://xcache.lighttpd.net/pub/Releases/3.0.3/xcache-3.0.3.tar.bz2
wget http://pecl.php.net/get/memcache-2.2.7.tgz
wget http://downloads.php.net/stas/php-5.4.19.tar.bz2
echo-e "\033[32m======download about memcached source package========\033[0m"
wget http://nchc.dl.sourceforge.net/project/levent/libevent/libevent-2.0/libevent-2.0.21-stable.tar.gz
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
echo-e "\033[32m======download about mysql source package=========\033[0m"
wget http://mysql.llarian.net/Downloads/MySQL-5.5/mysql-5.5.33.tar.gz
}
functioninstall_apache {
cd/root
yum -y installpcre-devel
tarxf apr-1.4.6.tar.bz2
tarxf apr-util-1.5.2.tar.bz2
tarxf httpd-2.4.6.tar.bz2
cd/root/apr-1.4.6
./configure--prefix=/usr/local/apr&& make&& makeinstall
echo-e "\033[32m=========apr is ok========\033[0m"
cd/root/apr-util-1.5.2
./configure--prefix=/usr/local/apr-util--with-apr=/usr/local/apr&& make&& makeinstall
echo-e "\033[32m=========apr-util is ok========\033[0m"
cd/root/httpd-2.4.6
./configure--prefix=/usr/local/apache--enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib \
--with-pcre --with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util--enable-modules=most \
--enable-mpms-shared=all --with-mpm=event && make&& makeinstall
echo-e "\033[32m=========httpd is ok========\033[0m"
}
functionconfig_apache {
echo-e "\033[32m frist,Associated system path \033[0m"
echo"PATH=/usr/local/apache/bin/:$PATH">/etc/profile.d/httpd.sh
source/etc/profile.d/httpd.sh
ln-sv /usr/local/apache/include//usr/include/httpd
echo-e "\033[32m second,Modify configuration files and provided systemV scripts \033[0m"
IP=`ifconfig| grep"inet addr"| grep-v"127.0.0.1"| awk-F: '{print $2}'| cut-d' '-f1`
cp/root/httpd-2.4.6/build/rpm/httpd.init /etc/rc.d/init.d/httpd
sed-i '/httpd/s/usr\/sbin\/httpd/usr\/local\/apache\/bin\/httpd/g'/etc/rc.d/init.d/httpd
sed-i '/^httpd/a\prog=httpd'/etc/rc.d/init.d/httpd
sed-i '/^pidfile/s/var\/run/usr\/local\/apache\/logs/g'/etc/rc.d/init.d/httpd
sed-i 's/etc\/httpd\/conf\/httpd.conf/usr\/local\/apache\/conf\/httpd.conf/g'/etc/rc.d/init.d/httpd
sed-i '$a ServerName '$IP':80'/usr/local/apache/conf/httpd.conf
chkconfig --add httpd
chkconfig --level 35 httpd on
service httpd start
}
functioninstall_nginx {
cd/root
yum -y installpcre-devel
tarxf nginx-1.4.2.tar.gz
groupadd nginx
useradd-r -g nginx nginx
cd/root/nginx-1.4.2
./configure\
--prefix=/usr\
--sbin-path=/usr/sbin/nginx\
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/\
--http-proxy-temp-path=/var/tmp/nginx/proxy/\
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/\
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi\
--http-scgi-temp-path=/var/tmp/nginx/scgi\
--with-pcre && make&& makeinstall
echo-e "\033[32m=========nginx is ok========\033[0m"
}
functioninstall_mysql {
cd/root
yum -y installcmake bison
useradd-r mysql
tarxf mysql-5.5.33.tar.gz
cd/root/mysql-5.5.33
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-DMYSQL_DATADIR=/mydata/data-DSYSCONFDIR=/etc\
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make&& makeinstall
echo-e "\033[32m=========mysqld is ok========\033[0m"
}
functionconfig_mysql {
echo-e "\033[32m frist,Associated system path,and Initialization database \033[0m"
cp/usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
cp/usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chown-R root.mysql /usr/local/mysql/
mkdir-pv /mydata/data
chown-R mysql:mysql /mydata/data/
sed-i '/thread_concurrency/a\ datadir = /mydata/data'/etc/my.cnf
sed-i '/datadir/a\ innodb_file_per_table = 1'/etc/my.cnf
/usr/local/mysql/scripts/mysql_install_db--user=mysql --datadir=/mydata/data/--basedir=/usr/local/mysql
service mysqld start
echo"PATH=/usr/local/mysql/bin:$PATH">/etc/profile.d/mysqld.sh
source/etc/profile.d/mysqld.sh
echo"/usr/local/mysql/lib">/etc/ld.so.conf.d/mysqld.conf
ldconfig -v| grepmysql
ln-sv /usr/local/mysql/include//usr/include/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
}
functioninstall_php {
yum -y installlibxml2-devel bzip2-devel curl-devel libmcrypt-devel mhash-devel
tarxf php-5.4.19.tar.bz2
cd/root/php-5.4.19
./configure--prefix=/usr/local/php--with-mysql=/usr/local/mysql--with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config\
--enable-mbstring --with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib --with-libxml-dir=/usr\
--enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs--with-mcrypt --with-curl \
--with-config-file-path=/etc--with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
make&& makeinstall
echo-e "\033[32m=========php is ok========\033[0m"
}
functionconfig_php {
cp/root/php-5.4.19/php.ini-production /etc/php.ini
}
functioninstall_php_fpm {
yum -y installlibxml2-devel bzip2-devel curl-devel libmcrypt-devel mhash-devel
tarxf php-5.4.19.tar.bz2
cd/root/php-5.4.19
./configure--prefix=/usr/local/php--with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd \
--with-openssl --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir--with-jpeg-dir--with-png-dir\
--with-zlib-dir--with-libxml-dir=/usr--enable-xml --with-mhash --with-mcrypt --with-config-file-path=/etc\
--with-config-file-scan-dir=/etc/php.d --with-bz2 --with-curl --enable-maintainer-zts --enable-fpm && make&& makeinstall
echo-e "\033[32m=========php-fpm is ok========\033[0m"
}
functionconfig_php_fpm {
echo-e "\033[32m frist,Associated system path \033[0m"
IP2=`ifconfig| grep"inet addr"| grep-v"127.0.0.1"| awk-F: '{print $2}'| cut-d' '-f1`
cp/root/php-5.4.19/php.ini-production /etc/php.ini
echo"PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH">/etc/profile.d/php-fpm.sh
source/etc/profile.d/php-fpm.sh
echo-e "\033[32m second,Modify configuration files and provided systemV scripts \033[0m"
mv/usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sed-i 's/127\.0\.0\.1/'$IP2'/g'/usr/local/php/etc/php-fpm.conf
cp/root/php-5.4.19/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
chmod+x /etc/rc.d/init.d/php-fpm
service php-fpm start
chkconfig --add php-fpm
chkconfig --level 35 php-fpm on
}
functioninstall_xcache {
cd/root
tarxf xcache-3.0.3.tar.bz2
if[ -d /usr/local/php];then
cd/root/xcache-3.0.3
/usr/local/php/bin/phpize
./configure--enable-xcache --with-php-config=/usr/local/php/bin/php-config
make&& makeinstall
else
install_php_fpm
cd/root/xcache-3.0.3
/usr/local/php/bin/phpize
./configure--enable-xcache --with-php-config=/usr/local/php/bin/php-config
make&& makeinstall
echo-e "\033[32m=========xcache is ok========\033[0m"
fi
}
functioninstall_memcache {
cd/root
tarxf memcache-2.2.7.tgz
if[ -d /usr/local/php];then
cd/root/memcache-2.2.7
/usr/local/php/bin/phpize
./configure--with-php-config=/usr/local/php/bin/php-config--enable-memcache && make&&makeinstall
else
install_php_fpm
cd/root/memcache-2.2.7
/usr/local/php/bin/phpize
./configure--with-php-config=/usr/local/php/bin/php-config--enable-memcache && make&&makeinstall
echo-e "\033[32m=========memcache is ok========\033[0m"
fi
}
functioninstall_memcached {
cd/root
tarxf libevent-2.0.21-stable.tar.gz
tarxf memcached-1.4.15.tar.gz
cd/root/libevent-2.0.21-stable
./configure--prefix=/usr/local/libevent&& make&& makeinstall
echo-e "\033[32m=========libevent is ok========\033[0m"
cd/usr/local/libevent/
echo"/usr/local/libevent/lib">/etc/ld.so.conf.d/libevent.conf
ldconfig -v| greplibevent
ln-sv /usr/local/libevent//usr/include/libevent
cd/root/memcached-1.4.15
./configure--prefix=/usr/local/memcached--with-libevent=/usr/local/libevent/
make&& makeinstall
echo-e "\033[32m=========memcached is ok========\033[0m"
}
functioninstall_lamp {
install_apache
install_mysql
install_php
install_xcache
}
functionconfig_lamp {
config_apache
config_mysql
config_php
}
functioninstall_lnmp {
install_nginx
install_mysql
install_php
install_xcache
}
functionconfig_lnmp {
config_mysql
config_php
}
functioninstall_lammp {
install_apache
install_mysql
install_php
install_xcache
install_memcache
install_memcached
}
functionconfig_lammp {
config_apache
config_mysql
config_php
config_php_fpm
}
functioninstall_lnmmp {
install_nginx
install_mysql
install_php
install_xcache
install_memcache
install_memcached
}
functionconfig_lnmmp {
config_mysql
config_php
config_php_fpm
}
echo-e "\033[32m====make sure yum is ok=========\033[0m"
#create_yum
echo-e "\033[32m====now,download all package====\033[0m"
#download
echo-e "\033[32m====install development packages====\033[0m"
#yum -y groupinstall "Development tools" "Server Platform Development"
echo-e "\033[32m=========you can choice you need install package==========\033[0m"
cat<<EOF
apache|A) installapache sourcepackage.
nginx|N) installnginx sourcepackage.
mysql|M) installmysql sourcepackage.
php|P) installphp sourcepackage.
php-fpm|PF) installphp-fpm sourcepackage.
xcache|X) installxcahe sourcepackage.
memcache|ME) installmemcache sourcepackage.
memcached|MD) installmemcached sourcepackage.
lamp) installlamp sourcepackage.
lammp) installlammp sourcepackage.
lnmp) installlnmp sourcepackage.
lnmmp) installlnmmp sourcepackage.
q|Q) quit
EOF
read-p "Please choose to install: "Choice
echo-e "\033[32m=====start install $Choice====\033[0m"
until[ $Choice == q -o $Choice == Q ];do
case$Choice in
apache|A)
install_apache
config_apache ;;
nginx|N)
install_nginx ;;
mysql|M)
install_mysql
config_mysql ;;
php|P)
install_php
config_php ;;
php-fpm|PF)
install_php_fpm
config_php_fpm ;;
xcache|X)
install_xcache ;;
memcache|ME)
install_memcache ;;
memcached|MD)
install_memcached ;;
lamp)
install_lamp
config_lamp ;;
lammp)
install_lammp
config_lammp ;;
lnmp)
install_lnmp
config_lnmp ;;
lnmmp)
install_lnmmp
config_lnmmp ;;
q|Q)
break
esac
read-p "Have any choice agin, if you no,q|Q is quit: "Choice
done

这个脚本和nginx systemV,memcached system V的脚本以附件的形式上传了

缺陷:

1)、没能为nginx提供自动化system V脚本,但是nginx的system V脚本我会以附件的方式上传,各位博友需要 vim /etc/rc.d/init.d/nginx 然后copy我提供的system V脚本然后添加权限,就可以service nginx start了

2)、也没能为memcached提供自动化system V脚本,但是memcached的system V脚本会以附件方式上传,各位博友需要 vim /etc/rc.d/init.d/memcached 然后copy我提供的system V脚本然后添加权限,就可以service memcached start了


转自http://litaotao.blog.51cto.com/6224470/1299117

转载于:https://blog.51cto.com/jiangkun08/1300328

LAMPLNMP自动化安装脚本相关推荐

  1. ubuntu mysql自动补全_mysql自动化安装脚本(ubuntu and centos64)

    Ubuntu Mysql自动化安装脚本 #/bin/bash function hasDpkg { r=`dpkg -l | grep "$1"` if [ -n "$r ...

  2. Hadoop自动化安装脚本

    参考资料和说明 参考资料: hadoop-2.3.0详细安装过程 码云GIT: hadoop-2.4.0家族自动化安装脚本 >>> 获取邀请码 版本信息: hadoop-2.4.0- ...

  3. MySQL自动化安装脚本-python版

    MySQL 自动化安装脚本 脚本介绍 用python写的一个自动化安装mysql单机实例的脚本 适用于mysql5.7版本 MySQL安装包路径: /usr/local/mysql #需要把mysql ...

  4. 手把手教学Linux下oracle11g自动化安装脚本编写

    手把手教学Linux下oracle11g自动化安装脚本编写 产品:Oracle 版本:11.2.0.4 环境:Centos7 文章目录 手把手教学Linux下oracle11g自动化安装脚本编写 0. ...

  5. lamp配置python_LAMP自动化安装脚本

    前辈和我说,刚开始一个个服务慢慢安装,以后要写自动安装脚步,不断学习! 仿他人改了一个脚本,按照自己的习惯,呵呵 #!/bin/bash #version:2011-9-16 #create by r ...

  6. EPICS -- base的自动化安装脚本

    工作中需要经常安装EPICS base(下载地址:EPICS Base Downloads), 反复安装是一个重复劳动的过程.以下脚本是实现了EPICS base自动安装 ,适用基于Redhat的Li ...

  7. Centos安装Open***自动化安装脚本

    Centos 安装Open***脚本实现内网跳转 请注意:脚本环境需求 系统:centos 6 -7 环境:两块网卡 ,一块内网,一块外网 操作脚本时需注意 系统 环境 环境 Centos7 内网外网 ...

  8. nginx+tomcat+resin+jdk一键自动化安装脚本(4--resin安装脚本)

    2019独角兽企业重金招聘Python工程师标准>>> #!/bin/bash # this shell will be installed resin*.tar.gz #autho ...

  9. snmp自动化安装脚本

    Centos7适用 #/bin/bash echo "" echo "" echo "******************************** ...

最新文章

  1. Windows Phone 二、WP控件
  2. mysql虚拟机远程链接_windows下用navicat远程链接虚拟机Linux下MySQL数据库
  3. Winform中使用Timer实现滚动字幕效果(附代码下载)
  4. 拓扑排序(Topology_Sort)
  5. Powercli的一些使用案例
  6. MySQL Thread pool 操作过程
  7. vue element隐藏组件滚动条scrollbar使用
  8. 第11章 Spring Boot使用Actuator
  9. 开发者该如何利用 C# 加解密?
  10. 蓝桥杯 ADV-203 算法提高 8皇后·改(八皇后问题)
  11. MPLS virtual private network 地址重叠实验(华为设备)
  12. Java线程输出字母大小写_FastJson 输出值 首字母大小写问题
  13. Win7英文版打补丁遇到的问题汇总
  14. win10计算机切换用户,win10账户切换,详细教您win10怎么切换账户
  15. pyautogui入门学习之消息盒子
  16. win7系统怎么查看电脑配置,win7电脑系统配置查看
  17. java dojo,针对 Java 开发人员的 Dojo 概念
  18. 2021-08-06随记(vertical-align, 顶线、底线、中线、基线,vue原理理解)
  19. Android UI个性style
  20. 说话技巧:成为谈话高手必不可少的十个特点

热门文章

  1. eclipse tomcat jsp乱码
  2. 机器学习框架ML.NET学习笔记【1】基本概念与系列文章目录
  3. IIS 使用OpenSSL 生成的自签名证书,然后使用SingalR 客户端访问Https 站点通信
  4. Unity3D学习笔记(七):叉乘和四元素
  5. D3.js系列——布局:打包图和地图
  6. C++彩色数据流动界面
  7. 利刃 MVVMLight 1:MVVMLight介绍以及在项目中的使用
  8. 史上最全的MSSQL笔记
  9. Linux下screen的应用
  10. 【转】BLE 学习记录