前言

之前在思考如何做WordPress迁移时,在认知方向上有误。看到很多博客答案是使用第三方工具一键迁移,这些工具可能需要付费,或者是某个管理平台上的功能,而我搭建WordPress时纯粹是使用命令行搭建。

后来通过调研、分析,了解到博客迁移无非是做好数据备份,然后将这些数据上传到一个新的原始WordPress站点。一共要做两个备份,一个是数据库的备份,另一个是wordpress目录下wp-content目录的备份。前者存储了我们编辑上传的所有内容数据,包括文章、页面、评论、自定义字段、条目信息(分类和标签等)、导航菜单、自定义文章以及我们的用户信息。后者存储了我们的主题、插件等信息。

博客迁移要做的任务是将原博客的wp-content目录和数据库备份下来,在新的原始WordPress站点中,覆盖掉wp-content目录和数据库,相当于上传数据,然后修改配置文件,链接到新的域名。

这里推荐一个方案,其中使用了phpMyAdmin做数据库备份:WordPress 托管

本文也是从中得到灵感,但是依然尽量使用了命令行方式做迁移。

在进行迁移之前,确保新的原始WordPress站点已经成功运行,可以参考:WordPress搭建个人博客

文章使用的Linux环境为CentOS7

备份wp-content目录

使用文件传输工具,比如xftp,直接将原来的WordPress网站根目录下的wp-content下载到本地

但是wp-content目录下可能会有很多文件,尽管文件并不大,但与文件建立下载请求也会大大增加下载时间。所以可以先打成一个压缩包再下载

到达wordpress目录(不同的安装方法路径会有所不同,这里不举例了):

zip -r wp-content.zip wp-content

如果没有xftp又不想安装,可以将代码上传到GitHub或码云,再下载到本地,速度也不差。

备份数据库

/usr/local/mysql/bin/mysqldump -u root -p wordpress > ~/wordpress.sql

/usr/local/mysql/bin/ :mysql安装目录

-u root -p : mysql管理员名称,需要登录mysql

wordpress:需要备份的数据库名称

~/wordpress.sql:输出的sql文件存放路径

然后将此文件下载到本地

覆盖wp-content目录

将下载好的wp-content.zip目录上传到新的wordpress目录

删除原来的wp-content目录:

rm -rf wp-content

解压wp-content.zip

unzip wp-content.zip

解压后wp-content.zip文件可以删掉

导入数据库

清空原来的wordpress数据库

最简单的方法是将数据库删除,再新建一个名称相同的数据库

mysql -u root -p

show databases;
drop database wordpress;
create database wordpress;

也可以执行语句,将表一个个删除:

drop table if exists 表名;

上传sql文件

导入sql文件

mysql -u root -p

use wordpress;
source ~/wordpress.sql; 
show tables;

~/wordpress.sql :sql文件路径

修改配置文件

修改wordpress目录下的wp-config.php文件

$table_prefix = 'wp_';  // 我们导入数据库时使用的前缀,默认wp_。可以在导入数据库步骤中更改所有表的前缀,然后这里的值跟更改值需要保持一致
define( 'WP_SITEURL', '新的域名'); // 比如http://new
define( 'WP_HOME', '新的域名' );

尾声

至此,备份工作已经完成。

更多推荐

WordPress网站迁移