写在开头
本篇记录如何迁移Typecho-Handsome博客,同时更换服务器和域名。
准备工作
- 新域名解析到新的服务器
- 配置新域名,如.htaccess、ssl等
- typecho后台修改站点配置
- 关闭所有插件
- 自行保存handsome设置中所有数据(迁移后备份会失效)
数据迁移
宝塔一键迁移(推荐)
通过宝塔软件商店中的 宝塔一键迁移API 进行迁移
手动迁移
环境需要相同,否则后续会各种报错
- 在新机器上先安装一个新的Typecho博客,数据库名称保持和原博客相同。
- 备份原博客的usr目录。
- 备份整个mysql数据库,命令:
mysqldump -uroot -p --all-databases > sqlfile.sql3.2、或备份特定数据库,命令:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql4、将备份的数据库文件上传到新机器,同时将备份的数据库导入到新机器的mysql中。命令:
mysql -uroot -p < sqlfile.sql注:如果是导入特定的数据库,必须确保数据库必须已经存在。
5、将备份的usr目录,上传到新机器覆盖原来的usr目录(注意是博客的usr目录)。
域名更换
以下 SQL 语句默认表前缀为
typecho_,若你的数据库表前缀不是typecho_,请自行修改语句。建议使用phpMyadmin进行替换数据
修改 typecho_options 表
将网站的设置里的域名替换成新的域名:
UPDATE `typecho_options` SET `value` = '新域名地址' WHERE `typecho_options`.`name` = 'siteUrl' AND `typecho_options`.`user` =0;修改 typecho_contents 表
将网站文章里的旧域名替换成新的域名:
UPDATE `typecho_contents` SET `text` = REPLACE(`text`,'旧域名地址','新域名地址');修改 typecho_users 表
将管理员的个人网站进行替换
UPDATE `typecho_users` SET `url` = REPLACE(`url`,'旧域名地址','新域名地址');修改 typecho_comments 表
对评论中的管理员的域名,和评论中的旧域名进行替换
UPDATE `typecho_comments` SET `url` = REPLACE(`url`,'旧域名地址','新域名地址');
UPDATE `typecho_comments` SET `text` = REPLACE(`text`,'旧域名地址','新域名地址');
-- 如果使用的域名邮箱,也建议进行更换
UPDATE `typecho_comments` SET `mail` = REPLACE(`mail`,'旧域名地址','新域名地址');修改typecho_fields 表
自定义字段里的地址
UPDATE `typecho_fields` SET `str_value` = REPLACE(`str_value`,'旧域名地址','新域名地址');查漏补缺
如果还有其他的地方修改,参照上面的 SQL 语句进行替换即可,也可以通过phpMyadmin进入网站后台手动进行修改
伪静态设置
我使用的nginx,Typecho安装在二级目录的伪静态设置如下:
location /blog/ {
if (!-e $request_filename) {
rewrite ^(.*)$ /blog/index.php$1 last;
}
}最后
尽量将原域名301重定向到新域名一段时间再停止