前言

这两天收到阿里云的信息,提示我虚拟主机要过期了,我就在考虑要不要续费,其实自己早就有想法把所有的网站都放到一起了,毕竟自己有vultr的vps,配置上放自己的这些网站也没有任何问题,主要就是备案的问题,这是真的坑啊。。没有备案就不能使用国内的cdn服务,自己的小程序也不能正常运行了,还是一件比较尴尬的事情。后来考虑了一下,还是先放到美国的vps里面吧,以后在考虑换到国内的云服务器,估计到时候还要重新备案。

对了!还有一个很重要的原因。。。就是我的域名是me,国内不能备案

下面就是我这次迁移服务器的过程和遇到的一些坑,算是做一次记录,没准也可以帮助遇到同样问题的小伙伴。

原始网站数据备份

1.通过FTP工具将网站所有数据都打包下载。
2.通过阿里云自带的数据库管理工具将数据库全部备份下来,所有的表!utf8编码!
2.1这里注意一点,我在导入旧数据库到新的服务器时,有一段报错

T FOREIGN_KEY_CHECKS = 0;

mysql 启动和关闭外键约束的方法,去掉即可

  • 方法(通过数据库管理工具的命令行执行)

SET FOREIGN_KEY_CHECKS = 0
SET FOREIGN_KEY_CHECKS = 1

如果没有报错,继续正常操作即可,如果有上方的报错就执行上方的命令后重新导出数据库

新服务器部署

我的服务器是centos7,部署了宝塔,都9102年了,还敲命令行啊!!(主要是我自己太懒。。。)

1.使用宝塔自带的一键部署源码工具直接部署typecho!因为我之前的php版本为5.5,这里部署的时候我也选择了5.5。避免出现更多的问题!

2.部署成功后,进入到PHPmyadmin,先删除全部的表!然后导入之前备份的数据库!如果出现什么500报错,检查下config.inc.php是否设置正确

3.网站后台关闭地址重写(伪静态功能)

4.网站地址改为http

5.导入旧typecho的usr目录到你的新网站根目录进行替换!

6.宝塔管理面板开启伪静态(直接选择typecho即可)

7.typecho网站后台开启伪静态(确定伪静态设置正确的情况下强制开启即可)

7.网站地址改为https

8.宝塔开启https,我使用的是cloudflare的证书,部署证书成功后,强制跳转https即可!

内容替换

部分旧的数据是写死的,比如首图的地址,这个时候我们就需要手动替换,如果数据少的话,可以人工修改,我这里有几十条需要改,就使用命令来改,也就是几秒的事情。

  • typecho_fields 表名
  • str_value 字段名

大致意思:将表名为typecho_fields,字段名str_value下内容为blog.45share.com替换为adao.me(blog.45share.com为博客旧地址)

UPDATE typecho_fields SET str_value = replace(str_value, 'blog.45share.com', 'adao.me')

一切正常~