对Wordpress做一次迁移,
现有服务器A ,B 两台,zhourongyu.me运行在A上,现在需要转移到B之上。
流程如下:
一,首先导出A之上的mysql数据。进入phpmyadmin里选导出即可,需要通过ftp传到B之上。
另一种方法使用命令
mysqldump -u root -p wpblog > zdata.sql
二,打包A之上的wp目录,可以选择通过ftp拷到本地,再打包上传到B。
另一种使用tar打包
tar -cvf zwp.tar zhourongyu.me
三,把sql文件tar目录文件转移到zhourongyu.me WEB目录之下
四,在B服务器上通过wget把两个文件下载过来
wget http://zhourongyu.me/zwp.tar http://zhourongyu.me/zdata.sql
五,进入B的mysql 创建同名数据库,并通过sql文件导入数据
>create database wpblog
>use wpblog
>source /home/zhourongyu/zdata.sql
这样数据库就成功导
六,解压tar文件到wwwroot目录
tar xvf zwp.tar zhourongyu.me
修改nginx配置文件修改对应路径。
如果想配置成A一样,同理可以把A上的nginx配置文件wget过来。
最后,修改域名A记录,指向新的IP。
至此基本已经完成了数据的迁移。
如果需要更换新域名则需要在之上的步骤里多做一些操作:
一,需要修改nginx配置文件替换域名
二,修改数据库中对应的URL,
最笨的办法是进入phpmyadmin中修改相应URL 主要是wp_options表级wp_posts表
可以直接修改sql文件替换文件中对应的URL全部换成新的域名。
还可以用sql替换命令来替换相应的路径
UPDATE 表名 SET 字段 = REPLACE(字段,’替换内容’,’替换值’);
示例(切换到新域名:http://ooxx.me)如下:
> UPDATE wp_options SET option_value = REPLACE(option_value,'zhourongyu.me','ooxx.me');
注意上面的标点要都要用英文半角。其中wp_options就是表名,option_value就是表wp_options里的一个字段,wp_options里有siteurl和home的值。
修改option_value里的站点url和主页地址:
> update wp_options set option_value = replace(option_value, 'http://zhourongyu.me','http://ooxx.me') where option_name='home' or option_name='siteurl'
更正文章中内部链接及附件的地址:
> UPDATE wp_posts SET post_content = replace(post_content, 'http://zhourongyu.me', 'http://ooxx.me');
更正wordpress文章默认的永久链接:
> UPDATE wp_posts SET guid = replace(guid, 'http://zhourongyu.me','http://ooxx.me');
最后进入B的wp后台修改wordpress地址为新域名