欢迎光临
专业Linux运维二十年

CentOS 6.5编译安装Nginx 1.10.2+MySQL 5.5.52+PHP5.5.38

准备篇

一、配置防火墙,开启80端口、3306端口

?
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
vi
/etc/sysconfig/iptables
#编辑防火墙配置文件
 
# Firewall configuration written by system-config-firewall
 
# Manual customization of this file is not recommended.
 
*filter
 
:INPUT ACCEPT [0:0]
 
:FORWARD ACCEPT [0:0]
 
:OUTPUT ACCEPT [0:0]
 
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
-A INPUT -p icmp -j ACCEPT
 
-A INPUT -i lo -j ACCEPT
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
 
-A INPUT -j REJECT --reject-with icmp-host-prohibited
 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
 
COMMIT
 
:wq!
#保存退出

service iptables restart #最后重启防火墙使配置生效

二、关闭SELINUX

?
1
2
3
4
5
6
7
8
9
10
11
vi
/etc/selinux/config
 
#SELINUX=enforcing #注释掉
 
#SELINUXTYPE=targeted #注释掉
 
SELINUX=disabled
#增加
 
:wq!
#保存退出
 
setenforce 0
#使配置立即生效

三 、系统约定

软件源代码包存放位置:/usr/local/src

源码包编译安装位置:/usr/local/软件名字

四、下载软件包

1、下载nginx

http://nginx.org/download/nginx-1.10.2.tar.gz

2、下载MySQL

http://downloads.mysql.com/archives/get/file/mysql-5.5.52.tar.gz

3、下载php

http://cn2.php.net/distributions/php-5.5.38.tar.gz

4、下载pcre (支持nginx伪静态)

http://ftp.exim.llorien.org/pcre/pcre-8.39.tar.gz

5、下载openssl(nginx扩展)

http://www.openssl.org/source/openssl-1.0.2j.tar.gz

6、下载zlib(nginx扩展)

http://zlib.net/zlib-1.2.8.tar.gz

7、下载cmake(MySQL编译工具)

http://www.cmake.org/files/v3.6/cmake-3.6.2.tar.gz

8、下载libmcrypt(php扩展)

http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

9、下载yasm(php扩展)

http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz

10、t1lib(php扩展)

ftp://sunsite.unc.edu/pub/Linux/libs/graphics/t1lib-5.1.2.tar.gz

11、下载gd库安装包

https://bitbucket.org/libgd/gd-libgd/downloads/libgd-2.1.1.tar.gz

12、libvpx(gd库需要)

https://webm.googlecode.com/files/libvpx-v1.3.0.tar.bz2

13、tiff(gd库需要)

http://download.osgeo.org/libtiff/tiff-4.0.6.tar.gz

14、libpng(gd库需要)

https://sourceforge.net/projects/libpng/files/libpng16/1.6.25/libpng-1.6.25.tar.gz

15、freetype(gd库需要)

http://ftp.twaren.net/Unix/NonGNU/freetype/freetype-2.7.tar.gz

16、jpegsrc(gd库需要)

http://www.ijg.org/files/jpegsrc.v9b.tar.gz

以上软件包上传到/usr/local/src目录

五、安装编译工具

yum install apr* autoconf automake bison bzip2 bzip2* cloog-ppl compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng* libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libX* libtiff libtiff* make mpfr ncurses* ntp openssl nasm nasm* openssl-devel patch pcre-devel perl php-common php-gd policycoreutils ppl telnet t1lib t1lib* wget zlib-devel

安装篇

一、安装MySQL

1、安装cmake

cd /usr/local/src

tar zxvf cmake-3.6.2.tar.gz

cd cmake-3.6.2

./configure

make

make install

2、安装MySQL

groupadd mysql #添加mysql组

useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统

mkdir -p /data/mysql #创建MySQL数据库存放目录

chown -R mysql:mysql /data/mysql #设置MySQL数据库目录权限

mkdir -p /usr/local/mysql #创建MySQL安装目录

cd /usr/local/src

tar zxvf mysql-5.5.52.tar.gz #解压

cd mysql-5.5.52

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc #配置

make #编译

make install #安装

cd /usr/local/mysql

cp ./support-files/my-huge.cnf /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)

vi /etc/my.cnf #编辑配置文件,在 [mysqld] 部分增加

datadir = /data/mysql #添加MySQL数据库路径

:wq! #保存退出

./scripts/mysql_install_db –user=mysql #生成mysql系统数据库

cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动

chmod 755 /etc/init.d/mysqld #增加执行权限

chkconfig mysqld on #加入开机启动

vi /etc/rc.d/init.d/mysqld #编辑

basedir=/usr/local/mysql #MySQL程序安装路径

datadir=/data/mysql #MySQl数据库存放目录

:wq! #保存退出

service mysqld start #启动

vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行

export PATH=$PATH:/usr/local/mysql/bin

:wq! #保存退出

source /etc/profile #使配置立即生效

下面是把myslq的库文件链接到系统默认位置,这样在编译类似PHP等软件时可以不用指定mysql的库文件地址。

ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql

ln -s /usr/local/mysql/include/mysql /usr/include/mysql

mkdir /var/lib/mysql #创建目录

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock #添加软链接

mysql_secure_installation #设置Mysql密码,根据提示按Y 回车输入2次密码

/usr/local/mysql/bin/mysqladmin -u root -p password “123456” #或者直接修改密码

到此,mysql安装完成!

二、安装Nginx

1、安装pcre

cd /usr/local/src

mkdir /usr/local/pcre

tar zxvf pcre-8.39.tar.gz

cd pcre-8.39

./configure –prefix=/usr/local/pcre

make

make install

2、安装openssl

cd /usr/local/src

mkdir /usr/local/openssl

tar zxvf openssl-1.0.2j.tar.gz

cd openssl-1.0.2j

./config –prefix=/usr/local/openssl

make

make install

vi /etc/profile

export PATH=$PATH:/usr/local/openssl/bin

:wq!

source /etc/profile

3、安装zlib

cd /usr/local/src

mkdir /usr/local/zlib

tar zxvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure –prefix=/usr/local/zlib

make

make install

4、安装Nginx

cd /usr/local/src

groupadd www

useradd -g www www -s /bin/false

cd /usr/local/src

tar zxvf nginx-1.10.2.tar.gz

cd nginx-1.10.2

./configure –prefix=/usr/local/nginx –without-http_memcached_module –user=www –group=www –with-http_stub_status_module –with-http_ssl_module –with-http_gzip_static_module –with-openssl=/usr/local/src/openssl-1.0.2j –with-zlib=/usr/local/src/zlib-1.2.8 –with-pcre=/usr/local/src/pcre-8.39

注意:–with-openssl=/usr/local/src/openssl-1.0.2j –with-zlib=/usr/local/src/zlib-1.2.8 –with-pcre=/usr/local/src/pcre-8.39指向的是源码包解压的路径,而不是安装的路径,否则会报错

make

make install

/usr/local/nginx/sbin/nginx #启动Nginx

设置nginx开机启动

vi /etc/rc.d/init.d/nginx #编辑启动文件添加下面内容

?
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
#!/bin/sh
 
#
 
# nginx - this script starts and stops the nginx daemon
 
#
 
# chkconfig: - 85 15
 
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
 
# proxy and IMAP/POP3 proxy server
 
# processname: nginx
 
# config: /etc/nginx/nginx.conf
 
# config: /usr/local/nginx/conf/nginx.conf
 
# pidfile: /usr/local/nginx/logs/nginx.pid
 
# Source function library.
 
.
/etc/rc
.d
/init
.d
/functions
 
# Source networking configuration.
 
.
/etc/sysconfig/network
 
# Check that networking is up.
 
[
"$NETWORKING"
=
"no"
] &&
exit
0
 
nginx=
"/usr/local/nginx/sbin/nginx"
 
prog=$(
basename
$nginx)
 
NGINX_CONF_FILE=
"/usr/local/nginx/conf/nginx.conf"
 
[ -f
/etc/sysconfig/nginx
] && .
/etc/sysconfig/nginx
 
lockfile=
/var/lock/subsys/nginx
 
make_dirs() {
 
# make required directories
 
user=`$nginx -V 2>&1 |
grep
"configure arguments:"
|
sed
's/[^*]*--user=\([^ ]*\).*/\1/g'
-`
 
if
[ -z
"`grep $user /etc/passwd`"
];
then
 
useradd
-M -s
/bin/nologin
$user
 
fi
 
options=`$nginx -V 2>&1 |
grep
'configure arguments:'
`
 
for
opt
in
$options;
do
 
if
[ `
echo
$opt |
grep
'.*-temp-path'
` ];
then
 
value=`
echo
$opt |
cut
-d
"="
-f 2`
 
if
[ ! -d
"$value"
];
then
 
# echo "creating" $value
 
mkdir
-p $value &&
chown
-R $user $value
 
fi
 
fi
 
done
 
}
 
start() {
 
[ -x $nginx ] ||
exit
5
 
[ -f $NGINX_CONF_FILE ] ||
exit
6
 
make_dirs
 
echo
-n $
"Starting $prog: "
 
daemon $nginx -c $NGINX_CONF_FILE
 
retval=$?
 
echo
 
[ $retval -
eq
0 ] &&
touch
$lockfile
 
return
$retval
 
}
 
stop() {
 
echo
-n $
"Stopping $prog: "
 
killproc $prog -QUIT
 
retval=$?
 
echo
 
[ $retval -
eq
0 ] &&
rm
-f $lockfile
 
return
$retval
 
}
 
restart() {
 
#configtest || return $?
 
stop
 
sleep
1
 
start
 
}
 
reload() {
 
#configtest || return $?
 
echo
-n $
"Reloading $prog: "
 
killproc $nginx -HUP
 
RETVAL=$?
 
echo
 
}
 
force_reload() {
 
restart
 
}
 
configtest() {
 
$nginx -t -c $NGINX_CONF_FILE
 
}
 
rh_status() {
 
status $prog
 
}
 
rh_status_q() {
 
rh_status >
/dev/null
2>&1
 
}
 
case
"$1"
in
 
start)
 
rh_status_q &&
exit
0
 
$1
 
;;
 
stop)
 
rh_status_q ||
exit
0
 
$1
 
;;
 
restart|configtest)
 
$1
 
;;
 
reload)
 
rh_status_q ||
exit
7
 
$1
 
;;
 
force-reload)
 
force_reload
 
;;
 
status)
 
rh_status
 
;;
 
condrestart|try-restart)
 
rh_status_q ||
exit
0
 
;;
 
*)
 
echo
$
"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
 
exit
2
 
esac

:wq! #保存退出

chmod 775 /etc/rc.d/init.d/nginx #赋予文件执行权限

chkconfig nginx on #设置开机启动

/etc/rc.d/init.d/nginx restart #重启

在浏览器中打开服务器IP地址,会看到下面的界面,说明Nginx安装成功。

系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及

脚本之家
赞(0) 打赏
未经允许不得转载:Linux老运维 » CentOS 6.5编译安装Nginx 1.10.2+MySQL 5.5.52+PHP5.5.38

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫