惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
The Last Watchdog
The Last Watchdog
T
Tenable Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
V
Vulnerabilities – Threatpost
F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
A
Arctic Wolf
云风的 BLOG
云风的 BLOG
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
MyScale Blog
MyScale Blog
B
Blog
Spread Privacy
Spread Privacy
S
Schneier on Security
Project Zero
Project Zero
L
LINUX DO - 热门话题
M
MIT News - Artificial intelligence
F
Full Disclosure
WordPress大学
WordPress大学
Apple Machine Learning Research
Apple Machine Learning Research
Cyberwarzone
Cyberwarzone
AWS News Blog
AWS News Blog
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
C
Cybersecurity and Infrastructure Security Agency CISA
Hugging Face - Blog
Hugging Face - Blog
Security Latest
Security Latest
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tailwind CSS Blog
K
Kaspersky official blog
Recent Announcements
Recent Announcements
NISL@THU
NISL@THU
Cisco Talos Blog
Cisco Talos Blog
S
Securelist
P
Privacy & Cybersecurity Law Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Exploit Database - CXSecurity.com
V
Visual Studio Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Webroot Blog
Webroot Blog

羽翼博客

一个软件官网的消失,让我第一次感受到远方局势的影响 浏览器书签同步又挂了?自建 linkding 书签管理器(宝塔部署教程) Typecho主题发布:Initial-M 微软原版系统直链下载工具-ESD 给网站添点“懒”:使用LazySizes实现图片懒加载 开源下载器 AB Download Manager | 浏览器集成 批量删除公众号的解决办法|鼠标录制器|投屏工具 Windows10电源计划选项仅平衡问题解决 N4500工控机(3)-PVE定时开关与飞牛核显直通
网站备份迁移实战:从手动迁移到问题解决
羽翼 · 2026-02-26 · via 羽翼博客

一、搬迁背景

哎,最近给自己的小站搞了一次“大搬家”——从老服务器挪到了新买的阿里云服务器。以前都是靠宝塔面板点一下“一键迁移”,省心是省心,但这次我决定自己动手来一遍,图个干净利落。为啥?因为一键迁移太“懒”了,啥破烂都给你搬过去,日志、废弃插件、乱七八糟的临时文件……全跟着走,新环境看着就闹心。所以这次我干脆自己来,虽然麻烦点,但搬完之后心里透亮,啥都在掌控中!

原服务器所依赖的优惠活动已到期,无法续期,故需更换至新服务器环境。手动迁移虽然费点劲,但能只搬该搬的,清理掉那些没用的垃圾。

二、搬迁准备

重要提示:建议对当前宝塔面板中的软件配置、数据库信息等关键设置进行全面截图保存,形成完整的迁移文档。

1. 必须打包下载的文件(用宝塔/FTP/SFTP)

这些不适合用终端直接“看”,而是要 打包 + 下载保存:

  • 站点目录(整站打包)

一般类似:/www/wwwroot/你的域名/

至少包含(但建议整个目录一起打包):

  • config.inc.php(系统核心配置文件)
  • usr/themes/(主题及你改过的模板)
  • usr/plugins/(插件)
  • usr/uploads/(或你设定的上传文件路径)
  • 其它你自己加的静态资源目录(如 static/、assets/ 等)
  • 数据库备份(SQL 文件)

在宝塔“数据库”里给 Typecho 的库做一次备份,导出 .sql,下载保存。

2. 通过终端收集的环境信息(建议整理为环境配置文档)

通过SSH连接到服务器执行以下信息收集命令:

1). 操作系统信息

# 获取Linux发行版详细信息
cat /etc/os-release

# 查看内核版本与系统架构
uname -a

2). Nginx 版本和站点配置位置

# 获取Nginx版本
nginx -v

# 查看编译参数与加载模块
nginx -V 2>&1 | grep 'configure arguments'

# 定位站点配置文件(宝塔标准路径)
ls /www/server/panel/vhost/nginx/

# 查看具体站点"Nginx配置文件"详情 | 找到你域名对应的 .conf,比如 yourdomain.com.conf,然后:
cat /www/server/panel/vhost/nginx/yourdomain.com.conf

作用:

记录 Nginx 版本和编译参数;

保存你当前站点的 Nginx 配置(含伪静态、SSL 等),复制到本地文档里。

3). 查看PHP 版本和扩展

如果宝塔只装了一个 PHP,通常直接:

# 单版本PHP环境检测
php -v && php -m

# 多版本环境识别(宝塔典型结构)
ls /www/server/php/

# 指定版本环境检测(以PHP7.4为例)
/www/server/php/74/bin/php -v
/www/server/php/74/bin/php -m | grep -E 'pdo_mysql|gd|curl|openssl|mbstring'

你可以只挑 当前给这个站点用的 PHP 版本 执行一遍,然后把输出复制保存。

如果只想重点看常用扩展,可以:

php -m | egrep 'pdo_mysql|mysqli|mbstring|curl|gd|openssl|json|fileinfo'

作用:

记录 PHP 版本(方便以后按同版本或更高版本部署);

记录已启用扩展,避免以后漏装导致奇怪报错。

4). MySQL 版本、字符集和排序规则

# MySQL版本查询
mysql -V

# 连接数据库执行环境检测(需输入密码)
mysql -uroot -p <<EOF
SHOW VARIABLES LIKE 'version%';
SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE 'collation_%';
EOF

作用:

记录 MySQL 版本;

记录当前默认字符集/排序规则,迁移到新服务器时尽量保持一致。

5). Typecho 版本(如果后面排查问题时有用)

最简单是 后台首页右下角会显示版本号,你可以手动记下来。

如果想用终端大致确认,可以在站点目录下执行(先 cd 到站点):

cd /www/wwwroot/你的域名/
grep -R "TYPECHO_VERSION" -n .

Typecho版本 1.1 (17.10.30)

作用:记录当前运行的 Typecho 版本(比如 1.1),方便以后对照升级变动。

6). 主题/插件的配置(终端辅助)

有些主题/插件的设置会写到数据库,有些写到文件。

可以额外看一下 主题目录和插件目录结构:

cd /www/wwwroot/你的域名/usr/
ls

# 导出主题与插件清单
ls usr/themes/ > themes_list.txt
ls usr/plugins/ > plugins_list.txt
作用:记录当前启用/存在的主题和插件名字,将来遇到兼容问题可快速对照。

三、搬迁过程

Typecho系统迁移的核心在于usr用户数据目录与数据库的协同转移。新环境部署时,只需覆盖usr目录或者需要的主题和插件等并导入数据库即可实现完整状态恢复。

第一阶段:文件系统迁移

  • 推荐方案:通过宝塔面板「网站备份」功能生成完整压缩包
  • 备用方案:手动打包usr目录(包含所有用户配置与资源文件)或全站全量导出
技术说明:usr目录作为Typecho的用户数据中心,承载主题、插件、上传文件等所有个性化配置

第二阶段:数据库迁移

  1. 从原环境导出完整的SQL备份文件
  2. 在新服务器创建同名(建议)数据库(注意保持字符集一致性)
  3. 导入SQL备份文件至新数据库
    daochu_w.webp
    daoru_w.webp

导入后若面板不显示数据文件,点击“从服务器同步到面板”
tongbuSQL_w.webp

步骤三:配置调整

这里忘记截图了。简单来说:

  1. 通过Typecho安装向导配置数据库连接参数
  2. 若提示「数据库已存在数据表」,选择「使用原有数据」选项
  3. 必要时手动编辑config.inc.php调整数据库连接配置
  4. 验证所有功能模块运行状态

四、踩坑与解决

问题描述

搬迁后发现后台异常,部分功能无法使用。

排查发现根本原因:迁移前未停用第三方插件且未切换回默认主题

  1. 未禁用插件
  2. 未切换回默认主题

数据库修复方案

通过phpMyAdmin或命令行连接数据库,执行以下SQL:

-- 重置插件启用状态
UPDATE typecho_options SET value = 'a:0:{}' WHERE name = 'plugins';

-- 切换回默认主题
UPDATE typecho_options SET value = 'default' WHERE name = 'theme';

huifudefault_w.webp
huifuplugins_w.webp

执行后,后台恢复正常。

五、汇总

旧环境:Nginx 1.18    php7.4    mysql5.7    Typecho1.1.0
新环境:Nginx 1.28    php8.3    mysql5.7    Typecho1.3.0
迁移时建议直接安装稳定版本进行兼容性测试。

搬迁前必做:

  1. 禁用所有插件 - 避免插件兼容性问题
  2. 切换默认主题 - 确保主题文件完整迁移
  3. 清理无用数据 - 删除测试文章、无效评论等
  4. 检查依赖 - 确认PHP版本、扩展兼容性

手动迁移优势:

  • 只迁移必要文件,节省空间
  • 避免旧环境“垃圾”带到新服务器

建议流程:

备份前准备 → 完整备份 → 新环境搭建 → 
数据迁移 → 配置更新 → 全面测试 → DNS切换

六、后续优化

搬迁完成后:

  1. 配置SSL证书
  2. 设置定期备份任务
  3. 安装宝塔内相关软件

大概就是这么个流程。

文章目录

  • 一、搬迁背景
  • 二、搬迁准备
    • 1. 必须打包下载的文件(用宝塔/FTP/SFTP)
    • 2. 通过终端收集的环境信息(建议整理为环境配置文档)
      • 1). 操作系统信息
      • 2). Nginx 版本和站点配置位置
      • 3). 查看PHP 版本和扩展
      • 4). MySQL 版本、字符集和排序规则
      • 5). Typecho 版本(如果后面排查问题时有用)
      • 6). 主题/插件的配置(终端辅助)
  • 三、搬迁过程
    • 第一阶段:文件系统迁移
    • 第二阶段:数据库迁移
    • 步骤三:配置调整
  • 四、踩坑与解决
    • 问题描述
    • 数据库修复方案:
  • 五、汇总
    • 搬迁前必做:
    • 手动迁移优势:
    • 建议流程:
  • 六、后续优化