目前已是凌晨1点30,折腾了一晚上总算完成了迁移工作。
其实严格来讲,也算不上迁移,应该叫renew,因为这一切都是在同一台VPS上操作的,大致过程就是先备份了数据,接着制作了VPS的快照镜像,然后重装了系统,然后再进行恢复。不过理想很美好,现实很骨干,中间也是出了一些幺儿子。
还没说为啥要迁移呢!最主要的还是VPS本身的原因,不知道什么原因,VPS动不动就是load超过20,而且从top上看不是某个进程引起的,当卡住的时候,所有进程的CPU占用率都奇高无比。我也怀疑过是不是中招了,可无奈才疏学浅,差了几天也没查出所以然,索性直接重装了得了。
回到迁移话题,上一次搭建的博客,为了尝鲜,是直接用的docker compose,除了Wordpress外,还用docker弄了一些其他服务,比如gitea啥的,然后在母鸡(姑且把VPS叫母鸡了)上用Nginx反代出来。虽说docker是很简单,也非常方便,不过这次迁移我却还是回归了LNMP架构(注意啦,埋坑啦)。
在我LNMP都安装配置完以后,开始恢复数据,文件啥都一切正常,开始恢复数据库,数据库我偷懒,不是直接用mysqldump导出来的,而是直接用的日常备份里的sql文件。并且我docker版用的是mysql,版本记得没错是5.8,然后我新搭建的数据库用的是mariadb,再导入sql语句的时候满屏错误,主要是主键相关,但最后还是执行完了,一刷新页面,网站直接打不开了。
搜索了一通,没发现有什么有价值的解决方法。转念一想:我的文件目录结构和之前是一模一样的,现在就差个数据库了,既然我是用Wordpress备份插件导出的数据库,那我直接新安装个Wordpress,在用同一个插件导入回去不就好了?最后的答案是:不行,这个插件只认自己备份的数据库文件,其他的一概不管,哪怕我替换了它新备份的文件也无法恢复。
仔细看了插件的文档,里面提示说恢复有两种途径,一个是和上面一样,直接从插件上恢复,还有有一种是用phpMysqlAdmin工具恢复,于是乎,我又装了个phpMysqlAdmin工具。最后的结果是:诶,还真恢复了!虽然还是有不少错误提示。但好歹能打开了网站,进入后台了。
不过,首页就是404是什么鬼?进入后台一看,文章、标签、URL里虽然恢复了七七八八,但中间有大量的乱码,应该是mysql和mariadb不兼容导致的,这些乱码有些我还能记得是什么内容,不过还是有一些记不清了,好在谷歌搜索引擎有收录,最后从搜索引擎的收录镜像中恢复了。
至此,流水帐记录完毕。本次迁移除了恢复博客,除了从docker compose恢复到了LNMP架构,最大的改变应当属于Nginx了,这个下篇文章说明。