首页 » web服务, 操作系统 » WordPress迁移:使用nginx+php-fpm+mysql在vps上搭建高性能的blog运营环境

WordPress迁移:使用nginx+php-fpm+mysql在vps上搭建高性能的blog运营环境

时间:2013-05-06作者:felix.chan分类:web服务, 操作系统评论:2

之前买的justhost的虚拟主机快到期了,曾经有几次网站被挂马,感觉不是我网站代码的问题,而是由于用的是虚拟主机空间web文件权限问题导致的,虽然我有更强的一套方法防止被挂马,但是总的来说还是不太安全,所以决定还是买个vps独立来工作吧。

早上再tmall联系了一个卖家,49元一个月,美国的vps,测试了下下载速度可以跑到20Mbps,还算满意。就立刻装了centos6.2 x64的系统。

下面是我网站迁移的全部过程:
首先在原justhost服务器上打包整站代码文件,约1.5G,导出mysql数据库,约4M。然后全部丢到www.rednat.com网站根目录下。
在到新的vps上直接wget 这两个文件。

安装前准备
centos下执行

1
2
3
4
5
6
yum -y install gcc automake autoconf libtool make gcc-c++ glibc libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel  zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel 
 
useradd www
 
id www
uid=500(www) gid=500(www)=500(www)

新版php-fpm安装(推荐安装方式)

http://www.php.net/downloads.php

1
2
3
4
5
6
7
8
9
10
11
wget http://cn2.php.net/get/php-5.4.14.tar.gz/from/this/mirror
tar zxf ./php-5.4.14.tar.gz 
cd php-5.4.14 
./configure --prefix=/usr/local/php  --enable-fpm --with-mcrypt --with-zlib\
  --enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath\
  --enable-inline-optimization --with-bz2  --with-zlib --enable-sockets\
  --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex\
  --with-mhash --enable-zip --with-pcre-regex --with-mysql\
  --with-gd --with-jpeg
 
make all install

下面是对php-fpm运行用户进行设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cp /opt/php-5.4.14/php.ini-production /etc/php.ini
vi /etc/php.ini
short_open_tag = On 
expose_php = Off
date.timezone = PRC
 
;short_open_tag = On 允许使用php短标签
;expose_php = Off 隐藏php版本信息
 
cd /usr/local/php
cp etc/php-fpm.conf.default etc/php-fpm.conf 
vi etc/php-fpm.conf 
 
修改
user = www
group = www
 
/usr/local/php/sbin/php-fpm -c /etc/php.ini -y /etc/php-fpm.conf

二、编译安装nginx

下载pcre http://www.pcre.org/

1
2
3
4
5
wget http://downloads.sourceforge.net/project/pcre/pcre/8.32/pcre-8.32.zip
unzip pcre-8.32.zip
cd pcre-8.32
./configure
make && make install

下载zlib http://www.zlib.net/

wget http://zlib.net/zlib-1.2.8.tar.gz
tar zxf ./zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make && make install

下载nginx http://www.nginx.org

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
wget http://nginx.org/download/nginx-1.4.0.tar.gz
tar zxf ./nginx-1.4.0.tar.gz
cd nginx-1.4.0
 
 
<!--easy2hide start{reply_to_this=true}-->
vi src/http/ngx_http_header_filter_module.c
修改ngx_http_header_filter_module.c里的
static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
改成:
static char ngx_http_server_string[] = "Server: Felix.Chan" CRLF;
static char ngx_http_server_full_string[] = "Server: Felix.Chan" CRLF;
再来
vi src/core/nginx.h
 
#define nginx_version      1004000
#define NGINX_VERSION      "1.4.0"
#define NGINX_VER          "nginx/" NGINX_VERSION
 
#define NGINX_VAR          "NGINX"
#define NGX_OLDPID_EXT     ".oldbin"
 
 
改为
 
#define nginx_version      8008008
#define NGINX_VERSION      "8.8.8"
#define NGINX_VER          "Felix.Chan/" NGINX_VERSION
 
#define NGINX_VAR          "Felix.Chan"
#define NGX_OLDPID_EXT     ".oldbin"
 
./configure --with-http_ssl_module --with-http_ssl_module --with-http_realip_module\
   --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module \
   --with-pcre=/opt/pcre-8.32/  --with-zlib=/opt/zlib-1.2.8
<!--easy2hide end-->
 
make && make install

三、修改nginx配置文件以支持php-fpm

nginx安装完成后,修改nginx配置文件为,nginx.conf

其中server段增加如下配置,配置文件具体路径为:/usr/local/nginx/conf/nginx.conf

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
    server {
        listen       80;
        server_name  www.rednat.com rednat.com;
        access_log  logs/host.access.log  main;
        root /data/website;
		index index.php;
 
        location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        }
 
        location ~* ^.+\.(mp3|mp4|ttf|rss|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
	access_log off;
        log_not_found off;
        expires 1d;
		}
 
        location / {
        }
 
 
开启gzip压缩:
    gzip  on;
    gzip_min_length 1k;
    gzip_buffers 16 64k;
    gzip_http_version 1.1;
    gzip_comp_level 9;
    gzip_proxied any;
    gzip_types text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
 
 
/usr/local/nginx/sbin/nginx

四、创建测试php文件

创建php文件

在/usr/local/nginx/html下创建index.php文件,输入如下内容

< ? phpinfo(); ?>

配置www用户权限,以后网站维护用www用户执行,尽量不用root操作

1
2
visudo
www     ALL=(root)      NOPASSWD:/usr/local/nginx/sbin/nginx,/usr/local/php/sbin/php-fpm,/bin/kill,/usr/bin/killall

五、安装mysql数据库

1
2
3
4
5
6
7
8
9
10
11
yum install -y mysql-server mysql-devel
 
chkconfig mysqld on
/etc/init.d/mysqld start
 
mysql -uroot -p
 
create database rednat_com;
alter database rednat_com character set utf-8;
grant ALL on rednat_com.* to rednat@localhost identified by '123456';
source localhost.sql;

localhost.sql 为之前老服务器上导出的数据库sql备份文件。直接导入到新的数据库即可。

六、将站点文件迁移到/data/website目录下,修改wp-config.php 文件中,数据库相关配置信息。

七、启动服务

启动php-fpm和nginx

1
2
3
/usr/local/php/sbin/php-fpm
 
/usr/local/nginx/sbin/nginx

php-fpm关闭 killall -9 php-fpm
nginx关闭 /usr/local/nginx/sbin/nginx -s stop

八、nginx wp 固定链接404解决方法:

抱歉,只有对本文发表过评论才能阅读隐藏内容。

后台若有部分静态连接显示404,则进行一下操作,如果正常则不需要做任何操作。
第二个办法,解决办法:找到文件“域名/wp-admin/admin-head.php”,在里面加上此段代码

最后,通过http://tool.chinaz.com查看 www.rednat.com seo综合查询:

1
2
3
4
5
                服务器信息                                网页压缩检测
协议类型        HTTP/1.1 200 OK                           网页是否压缩:是	
页面类型        text/html; charset=UTF-8                  原网页大小:36286
服务器类型      Felix.Chan                                压缩后大小:11272
程序支持                                                  压缩比(估计值):68.94%

已经成功的隐藏了nginx版本信息,php的版本信息也看不到了。另外GZIP压缩已经开启,采用的是level 9的压缩。

原创文章,转载请注明: 转载自红防联盟www.rednat.com

本文链接地址: WordPress迁移:使用nginx+php-fpm+mysql在vps上搭建高性能的blog运营环境

|2|right
2 条评论
  1. avatar
    hellokey United States Google Chrome Windows 2014-03-05 18:05 回复

    很好的文章,谢谢分享

  2. avatar
    fanfank China Google Chrome Mac OS 2014-05-31 17:45 回复

    查看如何获取静态文件

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>