写在开头

本篇记录如何迁移Typecho-Handsome博客,同时更换服务器和域名。

准备工作

  • 新域名解析到新的服务器
  • 配置新域名,如.htaccess、ssl等
  • typecho后台修改站点配置
  • 关闭所有插件
  • 自行保存handsome设置中所有数据(迁移后备份会失效)

数据迁移

宝塔一键迁移(推荐)

通过宝塔软件商店中的 宝塔一键迁移API 进行迁移

迁移教程

手动迁移

环境需要相同,否则后续会各种报错

  1. 在新机器上先安装一个新的Typecho博客,数据库名称保持和原博客相同。
  2. 备份原博客的usr目录。
  3. 备份整个mysql数据库,命令:
mysqldump -uroot -p --all-databases > sqlfile.sql

3.2、或备份特定数据库,命令:

mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql

4、将备份的数据库文件上传到新机器,同时将备份的数据库导入到新机器的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重定向到新域名一段时间再停止

最后修改:2023 年 09 月 10 日
如果觉得我的文章对你有用,请随意赞赏