迁移 wordpress 博客主机

wordpress 博客迁移到新的服务器上,其实很简单,整机迁移即可,将数据库、wordpress博客文件打包压缩后,在新的服务器上启用就好了。但中间有一些细节,比如新采购的阿里云服务器,空机器,啥也没有,需要搭建 wordpress 的运行环境,对 php 等运行原理不怎么熟悉的人来说,浪费的很多时间。

需求如下,域名 abc.com 原来采用 https://www.hostinger.com.hk/ 的年费主机,之前采用的原因是方便,集成了 wordpress 环境,直接在后台页面操作就可以,关键是便宜些,比起国内的厂商便宜很多。hostinger有免费的主机, 推荐对速度性能要求不高的人来用一下。 现在打算将 abc.com 对应的博客迁移到阿里云上,购买的阿里云 ecs 服务器,空盘 centos 6.8 ;其实初始化时候可以直接从云市场购买 wordpress 的服务,不过后来才知道。

搭建 wordpress 的运营环境,我们知道 wordpress 是用 php 写的,所以很自然的想到 lnmp 架构,好在 lnmp 搭建很方便,https://lnmp.org/ 按照说明安装即可,等待时间看网络情况了,我大概是20分钟左右。 这里提一下 lnmp 安装后软件都去了哪些目录: https://lnmp.org/faq/lnmp-software-list.html

软件位置:

  • Nginx:/usr/local/nginx/
  • MySQL:/usr/local/mysql/
  • MariaDB:/usr/local/mariadb/
  • PHP:/usr/local/php/
  • PHPMyAdmin:/home/wwwroot/default/phpmyadmin/
  • 默认虚拟主机网站目录:/home/wwwroot/default/
  • Nginx日志目录:/home/wwwlogs/

配置文件

  • Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
  • MySQL/MariaDB配置文件:/etc/my.cnf
  • PHP配置文件:/usr/local/php/etc/php.ini
  • PHP-FPM配置文件:/usr/local/php/etc/php-fpm.conf
  • PureFtpd配置文件:/usr/local/pureftpd/etc/pure-ftpd.conf
  • Apache配置文件:/usr/local/apache/conf/httpd.conf

lnmp 搭建好后,php、nginx、mysql 都已经起来好了,在原主机 hostinger 后台进行备份 db 和网站文件,下载对应的 zip 包,下载后上传到新的阿里云 ecs 上面,可以采用 scp 、rz、或者其它的 ssh 工具等。

一、恢复 db 数据

我安装的是 mariadb ,登录 : /usr/local/mariadb/bin/mysql -u root -p,输入安装时数据库的密码即可进入:

[tester@ixirong bin]$ /usr/local/mariadb/bin/mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 756
Server version: 10.1.23-MariaDB Source distribution
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 创建数据库,执行导出的 sql 文件,即可恢复网站数据
MariaDB [(none)]> create database testdb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> use testdb;
Database changed
MariaDB [testdb]>source /home/tester/abc.com.sql

二、恢复网站 wordpress 文件

wordpress 备份恢复很简单,将原有 hostinger 主机上 public_html 目录下所有文件zip 包,拷贝到 ecs 虚拟机上面,解压缩即可,我放到了目录 /home/tester/public_html下面了。

-rw-r--r--  1 u783329617 u783329617   418 Sep 17  2016 index.php
-rw-r--r--  1 u783329617 u783329617 19935 Aug  5 08:03 license.txt
-rw-r--r--  1 u783329617 u783329617  6956 Aug  5 08:03 readme.html
-rwxrwxrwx  1 u783329617 u783329617 42385 Aug  4 22:42 sitemap_baidu.xml
-rw-r--r--  1 u783329617 u783329617  5447 Aug  5 08:03 wp-activate.php
drwxr-xr-x  9 u783329617 u783329617  4096 Sep 17  2016 wp-admin
-rw-r--r--  1 u783329617 u783329617   364 Sep 17  2016 wp-blog-header.php
-rw-r--r--  1 u783329617 u783329617  1627 Aug  5 08:03 wp-comments-post.php
-rw-r--r--  1 u783329617 u783329617  2930 Aug  5 08:03 wp-config-sample.php
-rw-------  1 u783329617 u783329617  3519 Oct 21  2016 wp-config.php
drwxr-xr-x 10 u783329617 u783329617  4096 Oct 21  2016 wp-content
-rw-r--r--  1 u783329617 u783329617  3286 Sep 17  2016 wp-cron.php
drwxr-xr-x 18 u783329617 u783329617 12288 Aug  5 08:03 wp-includes
-rw-r--r--  1 u783329617 u783329617  8044 Sep 17  2016 wp-itapi.php
-rw-r--r--  1 u783329617 u783329617  2422 Aug  5 08:03 wp-links-opml.php
-rw-r--r--  1 u783329617 u783329617  3301 Aug  5 08:03 wp-load.php
-rw-r--r--  1 u783329617 u783329617 34327 Aug  5 08:03 wp-login.php
-rw-r--r--  1 u783329617 u783329617  8048 Aug  5 08:03 wp-mail.php
-rw-r--r--  1 u783329617 u783329617 16200 Aug  5 08:03 wp-settings.php
-rw-r--r--  1 u783329617 u783329617 29924 Aug  5 08:03 wp-signup.php
-rw-r--r--  1 u783329617 u783329617  4513 Aug  5 08:03 wp-trackback.php
-rw-r--r--  1 u783329617 u783329617  3065 Aug  5 08:03 xmlrpc.php

注意: wp-config.php 文件里面存储着 wordpress 的数据库连接串信息,及时根据自己刚才创建的 db 的数据库信息,库名、用户名、密码、前缀信息及时更新,不更新的话,待会 nginx 配置好后通过 http://127.0.0.1 来访问创建也可以。

三、nginx 配置可访问 wordpress 内容

这块是重点,比如配置后出现 403 forbidden,之前的博客内容出现404页,首页 500/502 打不开等都是配置不正确的原因。
在配置之前,先略微了解下原因,nginx 是无法解析 php 语言的内容的,所以需要 fast-cgi 模块来处理,关于 CGI、FastCGI、PHP-FPM、PHP-CGI 分别是什么,却别又是啥,应该用哪个 !http://www.awaimai.com/371.html

看完之后应该可以理解了,我们需要使用 php-fpm 来解析 php 程序,通过 nginx 将请求转发到 php-fpm 上来。
php-fpm 启动方式以及参数如下:

# 配置地方,详情文件参考 https://wizardforcel.gitbooks.io/nginx-doc/content/Text/6.5_nginx_php_fpm.html
# /usr/local/php/etc/php-fpm.conf  
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
log_level = notice

[www]
listen = /tmp/php-cgi.sock   ##注意这个地方很多教程上都是配置的 127.0.0.1:9000 
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log

如果需要重启的话,直接重新加载配置即可:/etc/init.d/php-fpm reload

nginx 配置最终的配置如下,注意有注释的地方:

server
    {
        listen 80 default_server;    
        server_name _;    
        index index.php;
        root /home/u783329617/public_html;
        #error_page   404   /404.html;
        
        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php.conf;  ##这是 php-fpm 对接的地方
        include wordpress.conf;   ## 这是 wordpress 的配置,如果不加入,则会报404错误
        access_log  /home/wwwlogs/access.log;
    }
    include vhost/*.conf;  ##这是其它的域名配置

enable-php.confwordpress.conf 的配置如下:

   # enable-php.conf
    location ~ [^/]\.php(/|$)
        {
            try_files $uri =404;
            fastcgi_pass  unix:/tmp/php-cgi.sock; #这个地方的配置要看/usr/local/php/etc/php-fpm.conf的 listen 处,很多教程配置都是 127.0.0.1:9000 
            fastcgi_index index.php;
            include fastcgi.conf;
        }

   # wordpress.conf
   location / {
        try_files $uri $uri/ /index.php?$args;
     }

    # Add trailing slash to */wp-admin requests.
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;

nginx 配置完成后重新加载文件 /usr/local/nginx/sbin/nginx -s reload 后直接访问 http:127.0.0.1 就能看到经典的 wordpress 的安装文件了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容