Typecho博客迁移及报错解决-宝塔环境

前言

这两天收到阿里云的信息，提示我虚拟主机要过期了，我就在考虑要不要续费，其实自己早就有想法把所有的网站都放到一起了，毕竟自己有 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')

一切正常～