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