Typecho迁移服务器,完整备份还原流程
迁移Typecho博客的核心思路很简单:在旧服务器上完整备份网站文件和数据库,在新服务器上还原文件、导入数据库、修改配置并更新域名解析。
整个过程只要顺序正确,零基础用户也能在30分钟内完成,且不会丢失文章、评论和设置。
迁移前的准备工作
开始操作前,先确认你拥有旧服务器的SSH权限、数据库账号密码,以及新服务器已经安装好PHP、MySQL(或MariaDB)、Nginx或Apache环境。
如果新服务器还没装环境,建议先用宝塔面板或LNMP一键包部署好,宝塔用户可参考官方文档安装。
需要提前记录的信息:
- 旧服务器的网站根目录路径(例如
/www/wwwroot/typecho) - 数据库名称、用户名、密码(可在Typecho根目录的
config.inc.php中查看) - 当前Typecho的版本号(登录后台即可看到)
建议在迁移前暂停旧站点的文章更新和评论,避免迁移过程中产生新数据导致不一致。
从旧服务器备份文件与数据库
打包网站文件
通过SSH登录旧服务器,进入网站根目录的上一级,执行打包命令。
假设网站目录是 /www/wwwroot/typecho,运行:
cd /www/wwwroot
tar -czvf typecho_files_backup.tar.gz typecho
执行完成后,当前目录会生成 typecho_files_backup.tar.gz。
使用 ls -lh 确认文件大小与网站实际体积接近。
导出MySQL数据库
使用 mysqldump 导出数据库。
假设数据库名为 typecho_db,用户为 typecho_user,则运行:
mysqldump -u typecho_user -p typecho_db > typecho_db_backup.sql
回车后输入数据库密码。
如果数据库较大,可以加上 --single-transaction 参数避免锁表。
导出完成后,用 ls -lh typecho_db_backup.sql 检查文件大小,通常非空数据库至少几百KB。
下载备份文件到本地
用SFTP工具(如FileZilla、
WinSCP)或宝塔面板的文件管理功能,
将 typecho_files_backup.tar.gz 和 typecho_db_backup.sql 下载到本地电脑。不要跳过这一步,
直接在两台服务器间传输容易因网络中断导致文件损坏。
在新服务器上还原网站
上传并解压网站文件
通过SFTP将两个备份文件上传到新服务器的 /www/wwwroot/ 目录(宝塔默认路径)。
然后SSH登录新服务器,执行:
cd /www/wwwroot
tar -xzvf typecho_files_backup.tar.gz
解压后会得到 typecho 文件夹。
确保文件夹权限正确:
chown -R www:www /www/wwwroot/typecho
chmod -R 755 /www/wwwroot/typecho
如果新服务器使用Nginx,还需要在站点配置中设置网站根目录为 /www/wwwroot/typecho,并添加Typecho的伪静态规则。
宝塔面板中可在“网站”->“设置”->“伪静态”中选择Typecho规则。
导入数据库
先在新服务器上创建一个空数据库,数据库名、用户名、密码建议与旧服务器保持一致,这样就不需要修改 config.inc.php。
如果必须使用不同信息,稍后需修改配置文件。
通过命令行导入:
mysql -u typecho_user -p typecho_db < /www/wwwroot/typecho_db_backup.sql
输入密码后等待导入完成。
也可以登录宝塔面板的phpMyAdmin,选择目标数据库后点击“导入”,上传SQL文件执行。
修改Typecho配置文件
如果新数据库信息与旧的不同,编辑 /www/wwwroot/typecho/config.inc.php,修改以下部分:
$db->addServer(array (
'host' => 'localhost',
'port' => 3306,
'user' => '新数据库用户名',
'password' => '新数据库密码',
'charset' => 'utf8mb4',
'database' => '新数据库名',
), Typecho_Db::READ | Typecho_Db::WRITE);
保存后,访问新服务器的临时域名或IP,检查首页是否正常显示。
常见报错与避坑指南
数据库连接错误:检查 config.inc.php 中的数据库信息,确认新数据库用户有权限访问该库。
页面404或伪静态失效:确认Nginx/Apache已加载Typecho伪静态规则,并重启Web服务。
后台无法登录:可能是旧域名写入了数据库。
进入phpMyAdmin,找到 typecho_options 表,将 siteUrl 和 homeUrl 的值改为新域名。
图片或附件不显示:检查 /usr/uploads 目录是否完整解压,权限是否为 www:www。
迁移后评论丢失:确认导出的SQL文件包含 typecho_comments 表,导入时未跳过该表。
验证迁移结果与收尾工作
完成还原后,逐项检查以下内容:
- 访问新服务器IP或临时域名,确认首页、文章页、独立页面均能打开。
- 登录后台
/admin/,检查文章列表、评论、分类和标签是否完整。 - 发布一篇测试文章,确认写入数据库正常。
- 上传一张图片,确认附件目录可写。
- 确认无误后,将域名解析切换到新服务器IP,等待DNS生效。
全部验证通过后,旧服务器上的Typecho可以保留一周再删除,作为临时回滚备份。
迁移完成后,建议在新服务器上配置定期自动备份,避免下次迁移时手忙脚乱。
判断迁移成功的标准:新服务器能正常访问前台和后台,文章、评论、附件数量与旧站一致,且发布新内容无报错。
如果其中任何一项异常,优先检查数据库导入是否完整、文件权限是否正确。