LNMMP架构搭建wp个人博客实现动静态内容分离

思路:
   搭建wordpress个人博客,nginx做动静态文件分离,nginx处理静态内容(本地)

   动态内容由上游服务器php-fpm来完成


规划:

   nginx     反代后端 php-fpm            172.16.43.1
   php-fpm,php-extentsion(memcache),php-extentsion(xcache) 172.16.43.2
   mariadb 10       172.16.43.3


实现过程:

1. nginx安装及使用(172.16.43.1)

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
#nginx的安装需要环境: gcc-c++,pcre,zlib,nginx
.
# i) 安装gcc编译器
yum -y  install  gcc-c++
.
# ii) 安装pcre
tar  xf pcre-8.33. tar .gz
cd  pcre-8.33
. /configure  --prefix= /usr/local/pcre
make  &&  make  install
.
# iii) 安装zlib
tar  xf zlib-1.2.8. tar .gz
cd  zlib-1.2.8
. /configure  --prefix= /usr/local/zlib
make  &&  make  install
.
# iv) 安裝nginx
tar  xf nginx-1.5.7. tar .gz
cd  nginx-1.5.7
. /configure  --prefix= /usr/local/nginx  --sbin-path= /usr/local/nginx/nginx  --conf-path= /etc/nginx/nginx .conf --pid-path= /usr/local/nginx/nginx .pid --with-pcre= /root/pcre-8 .30 --with-zlib= /root/zlib-1 .2.8
make  &&  make  install
.
# v) 为nginx添加启动脚本
# vim /etc/rc.d/init.d/nginx
#!/bin/bash
# nginx Startup script
# chkconfig: - 85 15
# description: nginx Startup script
# processname: nginx
#pidfile: /var/local/nginx/nginx.pid
#config: /usr/local/nginx/nginx.conf
nginxd= /usr/local/nginx/nginx
nginx_config= /etc/nginx/nginx .conf
nginx_pid= /var/local/nginx/nginx .pid
RETVAL=0
prog= "nginx"
.
/etc/rc .d /init .d /functions
/etc/sysconfig/network
.
[ ${NETWORKING} =  "no"  ] &&  exit  0
[ -x $nginxd ] ||  exit  0
.
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() {
     echo  -n $ "Stopping $prog: "
     killproc $nginxd
     RETVAL=$?
     echo
     [ $RETVAL = 0 ] &&  rm  -f  /var/lock/subsys/nginx  /var/run/nginx .pid
}
.
reload() {
     echo  -n $ "Reloading $prog: "
     #kill -HUP `cat ${nginx_pid}`
     killproc $nginxd -HUP
     RETVAL=$?
     echo
}
.
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
.
# vi) 为nginx做配置处理
chmod  a+x  /etc/rc .d /init .d /nginx
chkconfig nginx on
useradd  -r -s  /sbin/nologin  nginx -U
.
# vii) 配置规划中的内容
vim  /etc/nginx/nginx .conf
############## 配置文件开始 ################
user nginx;
#启动进程,一般和CPU数量一致
worker_processes 2;
#[ debug | info | notice | warn | error | crit ] 错误日志的级别及位置
error_log  /var/log/nginx/error .log debug;
#一个nginx进程打开的最多文件描述符数目,最好与ulimit -n的值保持一致
worker_rlimit_nofile 51200;
events {
     #工作进程的最大连接数量,根据硬件调整
     worker_connections 4096;
     #[ kqueue | rtsig | epoll | /dev/poll | select | poll ] 使用epoll(linux2.6的高性能方式)
     use epoll;
}
http {
     include       mime.types;
     default_type  application /octet-stream ;
     # 内核直接返回请求,提升性能
     sendfile        on;
     # 保持长连接时间
     keepalive_timeout  5;
     # 开启gzip服务器压缩功能
     gzip   on;
     server {
         listen 80;
         resolver www.king.com;
         add_header testserver $server_addr;
         location / {
             root    /var/www/html ;
             index  index.html index.htm;
         }
         location ~* \.(jpg|png|gif|jpeg|js|css)$ {
             root  /var/www/html ;
         }
         location ~ \.php$ {
             # 这里就是关键,root 这里必须与上游服务器文件路径对应
             root  /var/www/html ;
             fastcgi_pass   172.16.43.2:9000;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
             include        fastcgi_params;
         }
     }
}
.
# vi) 替换fastcgi参数
# vim /etc/nginx/fastcgi_params
fastcgi_param  GATEWAY_INTERFACE  CGI /1 .1;
fastcgi_param  SERVER_SOFTWARE    nginx;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

wKioL1NbaOaxR89aAARTsw6IS_g328.jpg

2. php-fpm 安装(172.16.43.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
# i) 解决php安装依赖
yum -y groupinstall  "Desktop Platform Development"
yum -y  install  libmcrypt-devel
yum -y  install  bzip2 -devel
.
# ii) 安装php with fpm
tar  xf php-5.4.19. tar .bz2
cd  php-5.4.19
. /configure  --prefix= /usr/local/php  --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl -- enable -mbstring --with-freetype- dir  --with-jpeg- dir  --with-png- dir  --with-zlib --with-libxml- dir = /usr  -- enable -xml -- enable -sockets -- enable -fpm --with-mcrypt --with-config- file -path= /etc  --with-config- file -scan- dir = /etc/php .d --with-bz2
make  &&  make  install
.
# iii) 为php提供配置文件:
cp  php.ini-production  /etc/php .ini
.
# iv) 配置php-fpm
#为php-fpm提供SysV init脚本,并将其添加至服务列表:sapi在源码包下
cp  sapi /fpm/init .d.php-fpm   /etc/rc .d /init .d /php-fpm
chmod  +x  /etc/rc .d /init .d /php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
为php-fpm提供配置文件:
cp  /usr/local/php/etc/php-fpm .conf.default  /usr/local/php/etc/php-fpm .conf
编辑php-fpm的配置文件:vim  /usr/local/php/etc/php-fpm .conf
配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):
pid =  /usr/local/php/var/run/php-fpm .pid
listen = 172.16.43.2:9000

3. php拓展xache安装(172.16.43.2)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# i) 安装xcache
tar  xf xcache-3.1.0. tar .bz2
cd  xcache-3.1.0
/usr/local/php/bin/phpize
. /configure  -- enable -xcache --with-php-config= /usr/local/php/bin/php-config
make  &&  make  install
# 安装结束时,会出现类似如下行, 将后半句复制
Installing shared extensions:      /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
.
# ii) 编辑php.ini,整合php和xcache:
# 首先将xcache提供的样例配置导入php.ini
mkdir  /etc/php .d
# xcache.ini文件在xcache的源码目录中。
cp  xcache.ini  /etc/php .d
# 接下来编辑/etc/php.d/xcache.ini 修改为如下:
extension =  /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache .so

4. php拓展memcache安装(172.16.43.2)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# i) 安装memcache
tar  xf memcache-2.2.7.tgz
cd  memcache-2.2.7
/usr/local/php/bin/phpize
. /configure  -- enable -memcache --with-php-config= /usr/local/php/bin/php-config
make  &&  make  install
# 安装结束时,会出现类似如下行, 将后半句复制
Installing shared extensions:      /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/memcache .so
.
# ii) 编辑/etc/php.ini,在“dynamically loaded extension”相关的位置添加如下一行来载入memcache扩展:
extension= /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/memcache .so
.
# iii) 重启php-fpm服务
service php-fpm restart

wKiom1Nbac3D_lXnAATQIGowUJA112.jpg

wKioL1NbaaSyNdlxAAUDfUN3sX0149.jpg

5. MariaDB安装与配置(172.16.43.3)

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
# i) 创建mysql的数据目录
mkdir  /data
groupadd -r mysql
useradd  -g mysql -r -s  /sbin/nologin  -M -d  /data  mysql
chown  -R mysql:mysql  /data
.
# ii) 安装二进制mysql
tar  xf mysql-5.5.33-linux2.6-x86_64. tar .gz -C  /usr/local
cd  /usr/local
ln  -sv mysql-5.5.33-linux2.6-x86_64 mysql
cd  mysql
chown  -R mysql:mysql  .
mysql /scripts/mysql_install_db  --user=mysql --datadir= /data
chown  -R root  .
# 提供mysql的配置文件
cp  support-files /my-large .cnf   /etc/my .cnf
# 需要添加如下行指定mysql数据文件的存放位置:
datadir =  /data
.
# iii) 为mysql提供sysv服务脚本:
cd  /usr/local/mysql
cp  support-files /mysql .server   /etc/rc .d /init .d /mysqld
chmod  +x  /etc/rc .d /init .d /mysqld
添加至服务列表:
chkconfig --add mysqld
chkconfig mysqld on
echo  "export PATH=/usr/local/mysql/bin:$PATH"  /etc/profile .d /mysql .sh
/etc/profile .d /mysql .sh
.
# iv) 启动服务并授权php服务器账号访问
service mysqld restart
mysql
grant all on *.* to  'wordpress' @ '172.16.%.%'  identified by  '123456' ;
flush privileges;

6. 配置测试wordpress
   将wordpress的源代码分别拷贝到172.16.43.1与172.16.43.2对应目录
   (为什么是双份这里我们就可以理解了 :)
   unzip wordpress-3.3.1-zh_CN.zip

wKiom1NbbcDBreDMAAj1eNVSfl8660.jpg

wKioL1NbamWhZqXmAALsQ9l6eXk111.jpg






     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1403422,如需转载请自行联系原作者



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值