背景

之前我的站点(基于solo搭建)其实一直都在vps上运行,突然想尝试一下php(毕竟主题这么香,233),而本人又对php一窍不通,在图方便的情况下使用了fastcoment虚拟主机,想来这样既省了钱(其实也不便宜,SmartStart服务包也是三百多块),还有一个稳定的环境,同时还不用担心安全问题(全托管)

然而好景不长,很快系统就给我发来邮件,在CPU/IO等多项资源上我的占用超标,并关停了我的网站,最后还是决定把站点搬到自己的vps上来避免性能问题(这里要说一下fastcomet的升级是真的贵啊,都够我买个gia的vps了)

于是乎,迁移就开始了

环境配置

由于使用的是vps,所以需要自己搭环境,顺便使用一些在虚拟主机上没有体验到的东西(nginx、opcache都是speedup顶级服务包才能享受的内容)

在网上发现了方便又好用的lnmp脚本,那当然就毫不犹豫的上车了

传送门:lnmp

整个安装过程花费了我大概25分钟左右,安装时长和硬件性能有关,这里给出的时长对于配置初级的vps还是具有一定参考价值的

如果vps配置一般(内存2g以内),还是建议上32位系统

主程序迁移

我有轻微的洁癖,所以没有直接复制目录,而是上官网下载了最新的安装包

附件迁移

然后从wp-content/uploads中将附件内容复制到安装包的相应目录中

同时建好数据库,但是不往里面放任何数据,此时你的wordpress应该已经可以运行了,直接运行它,它会帮你新建表和执行初始化

数据库迁移

相对而言,这一步是最麻烦的
由于我删除了插件,所以需要迁移的数据仅包括wordpress的核心表

wordpress核心表

wp_comments 文章评论信息表
wp_commentmeta 文章评论额外信息表
wp_links 链接信息表
wp_options 基本配置信息表 该表通常作为插件存储数据的一个地方
wp_posts 文章信息表,包括了日志、附件、页面等等信息
wp_postmeta 文章额外数据表 文章自定义字段等信息存储在这里
wp_termmeta 类似上面的 wp_postmeta,存储一些其他的分类信息。
wp_terms 分类、标签的基础信息表(没有体现关联)
wp_term_relationship 分类与 文章、链接、菜单的关联表
wp_taxonomy 分类补充信息表,有category、tag、nav、meau 四种分类类型
wp_users 用户基本信息表,存放系统中所有用户的基本信息
wp_usermeta 用户额外信息表

具体表结构见WordPress数据结构分析

数据迁移

从phpMyAdmin将数据导出为sql文件
由于上面我们已经执行了wordpress的初始化,所以不再需要从新建表,只需要将我们需要的数据恢复到对应的表中即可
我们可以确定需要迁移的表:

  1. wp_comments
  2. wp_commentmeta
  3. wp_posts
  4. wp_postmeta
  5. wp_terms
  6. wp_term_relationship

复制它们的insert部分sql,然后在新站的phpMyAdmin中对新库执行

为什么不恢复wp_options?

由于之前尝试了各种插件和设置,所以表中的数据杂乱不堪,有洁癖的我自然不会恢复它咯(如果你尝试了恢复此表,欢迎在下方留言~)

插件安装与重新设置

嗯,开始了苦逼的对照设置,但是由于安装的插件和设置项不是很多的关系,所以对照着设置也没有花我多长时间(重要的是数据库干净啊,233)

最后

如果你有更好的方法,欢迎与我留言讨论


At least, say goodbye with smile.