CentOS6.6 源码包部署LNMP架构
CentOS6.6 源码包部署LNMP架构#配置防火墙,开启80端口,3306端口
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables restart
1
2
3
4
#关闭SELinux
vim /etc/sysconfig/selinux
SELINUX=disabled
reboot #重启系统
1
2
3
4
5
6
7
8
9
10
#系统约定
#软件源代码包存放位置:/usr/local/src
#源码包编译安装位置:/usr/local/软件名字
#下载对应的源码包并上传源码包到系统当中
# cd /usr/local/src
# ls
cmake-3.0.2.tar.gz libmcrypt-2.5.8.tar.gznginx-1.6.2.tar.gz t1lib-5.1.2.tar.gz
freetype-2.5.4.tar.gzlibpng-1.6.15.tar.gz openssl-1.0.1j.tar.gztiff-4.0.3.tar.gz
jpegsrc.v9a.gz libvpx-v1.3.0.tar.xz pcre-8.36.tar.gz yasm-1.3.0.tar.gz
libgd-2.1.0.tar.gz mysql-5.6.21.tar.gz php-5.6.3.tar.gz zlib-1.2.8.tar.gz
1
2
3
4
5
6
7
#安装编译工具及库文件
yum install -y apr* autoconf automake bison bzip2 bzip2* cloog-ppl compat* cpp curl curl-devel fontconfig fontconfig-devel
freetype freetype* freetype-devel gcc gcc-c++ 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* zlib-devel
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
#安装MySQL
1、安装cmake
# cd /usr/local/src
# tar zxvf cmake-3.0.2.tar.gz
# cd cmake-3.0.2
# ./configure
# make
# make install
2、安装MySQL
# groupadd 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.6.21.tar.gz #解压
# cd mysql-5.6.21
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc #配置
# make
# make install
# rm -rf /etc/my.cnf#删除系统默认的配置文件(如果默认没有就不用删除)
# cd /usr/local/mysql
# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql #生成mysql系统数据库
# ln -s /usr/local/mysql/my.cnf /etc/my.cnf#添加到/etc目录的软连接
# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动
# chmod 755 /etc/init.d/mysqld #增加执行权限
# chkconfig mysqld on #加入开机启动
# vim /etc/rc.d/init.d/mysqld #编辑
basedir=/usr/local/mysql #MySQL程序安装路径
datadir=/data/mysql #MySQl数据库存放目录
# service mysqld start
# vim /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行
export PATH=$PATH:/usr/local/mysql/bin
# source /etc/profile #使配置立刻生效
#下面两行把mysql的库文件链接到系统默认的位置,这样你在编译类似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次密码
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
#安装Nginx
1、安装pcre
# cd /usr/local/src
# mkdir pcre
# tar zxvf pcre-8.36.tar.gz
# cd pcre-8.36
# ./configure --prefix=/usr/local/pcre
# make
# make install
2、安装openssl
# cd /usr/local/src
# mkdir openssl
# tar zxvf openssl-1.0.1j.tar.gz
# cd openssl-1.0.1j
# ./config --prefix=/usr/local/openssl
# make
# make install
# vim /etc/profile
export PATH=$PATH:/usr/local/openssl/bin
# source /etc/profile
3、安装zlib
# cd /usr/local/src
# mkdir 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
# cd /usr/local/src
# groupadd www
# useradd -g www www -s /bin/false
# tar zxvf nginx-1.6.2.tar.gz
# cd nginx-1.6.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.1j --with-zlib=/usr/local/src/zlib-1.2.8
--with-pcre=/usr/local/src/pcre-8.36
#注意:--with-openssl=/usr/local/src/openssl-1.0.1j --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.36指向的是源码包解压的路径,而不是安装的路径,否则会报错
# make
# make install
# /usr/local/nginx/sbin/nginx #启动Nginx
# vim /etc/rc.d/init.d/nginx #写一个Nginx启动脚本
#!/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
# chmod 755 /etc/rc.d/init.d/nginx
# chkconfig nginx on
# service nginx restart #Nginx启动成功之后,在浏览器输入IP地址即可访问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
#安装PHP
1、安装yasm
# cd /usr/local/src
# tar zxvf yasm-1.3.0.tar.gz
# cd yasm-1.3.0
# ./configure
# make
# make install
2、安装libmcrypt
# cd /usr/local/src
# tar zxvf libmcrypt-2.5.8.tar.gz
# cd libmcrypt-2.5.8
# ./configure
# make
# make install
3、安装libvpx
# cd /usr/local/src
# tar xvf libvpx-v1.3.0.tar.xz
# cd libvpx-v1.3.0
# ./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9
# make
# make install
4、安装tiff
# cd /usr/local/src
# tar zxvf tiff-4.0.3.tar.gz
# cd tiff-4.0.3
# ./configure --prefix=/usr/local/tiff --enable-shared
# make
# make install
5、安装libpng
# cd /usr/local/src
# tar zxvf libpng-1.6.15.tar.gz
root@domain src]# cd libpng-1.6.15
# ./configure --prefix=/usr/local/libpng --enable-shared
# make
# make install
6、安装freetype
# cd /usr/local/src
# tar zxvf freetype-2.5.4.tar.gz
# cd freetype-2.5.4
# ./configure --prefix=/usr/local/freetype --enable-shared
# make
# make install
7、安装jpeg
# cd /usr/local/src
# tar zxvf jpegsrc.v9a.gz
# cd jpeg-9a/
# ./configure --prefix=/usr/local/jpeg --enable-shared
# make
# make install
8、安装libgd
# cd /usr/local/src
# tar zxvf libgd-2.1.0.tar.gz
# cd libgd-2.1.0
# ./configure --prefix=/usr/local/libgd --enable-shared
--with-jpeg=/usr/local/jpeg --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype
--with-fontconfig=/usr/local/freetype --with-xpm=/usr/ --with-tiff=/usr/local/tiff --with-vpx=/usr/local/libvpx
# make
# make install
9、安装t1lib
# cd /usr/local/src
# tar zxvf t1lib-5.1.2.tar.gz
# cd t1lib-5.1.2
# ./configure --prefix=/usr/local/t1lib --enable-shared
# make without_doc
# make install
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
10、安装php
#注意:如果系统是64位,请执行以下两条命令,否则安装php会出错(32位系统不需要执行)
# \cp -frp /usr/lib64/libltdl.so*/usr/lib/
# \cp -frp /usr/lib64/libXpm.so* /usr/lib/
# cd /usr/local/src
# tar zxvf php-5.6.3.tar.gz
# cd php-5.6.3
# export LD_LIBRARY_PATH=/usr/local/libgd/lib
# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc
--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock
--with-pdo-mysql=/usr/local/mysql --with-gd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg
--with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/ --with-vpx-dir=/usr/local/libvpx/
--with-zlib-dir=/usr/local/zlib --with-t1lib=/usr/local/t1lib --with-iconv --enable-libxml --enable-xml
--enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex
--enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets
--with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl
--enable-ctype
# make
# make install
# cp php.ini-production /usr/local/php/etc/php.ini #复制php配置文件到安装目录
# rm -rf /etc/php.ini #删除系统自带配置文件
# ln -s /usr/local/php/etc/php.ini /etc/php.ini #添加软链接到 /etc目录
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
# ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录
# vim /usr/local/php/etc/php-fpm.conf #编辑
user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
pid = run/php-fpm.pid #取消前面的分号
#设置php-fpm开机启动
# cp /usr/local/src/php-5.6.3/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷贝php-fpm到启动目录
# chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限
# chkconfig php-fpm on #设置开机启动
# vim /usr/local/php/etc/php.ini #编辑配置文件
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,
proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,
symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,
checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,
posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid,
posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,
posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid,
posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,
posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,
posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = Off #禁止显示php版本的信息
找到:short_open_tag = Off
修改为:short_open_tag = ON #支持php短标签
找到opcache.enable=0
修改为opcache.enable=1 #php支持opcode缓存
找到:;opcache.enable_cli=0 #php支持opcode缓存
修改为:opcache.enable_cli=1
在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能
# vim /usr/local/nginx/conf/nginx.conf
user www www; #首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php/etc/php-fpm.conf中的user,group配置相同,否则php运行出错
index index.html index.htm index.php; #添加index.php
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#取消FastCGI server部分location的注释,注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径
# service nginx restart
# service php-fpm start
# cd /usr/local/nginx/html
# rm -rf *
# vim index.php
<?
phpinfo();
?>
# chown -R www.www /usr/local/nginx/html
# chmod 700 /usr/local/nginx/html/ -R
至此,CentOS6.6 源码安装配置LNMP架构完毕,在浏览器输入对应的IP地址或域名访问测试
页:
[1]