利用Typecho从零开始搭建我的个人博客(涵盖数据/插件/域名解析迁移)
前言
我的个人博客建立快一年了,由于目前博客在用的云服务器里面装了很多杂七杂八的东西,一直想好好整理一下。今天我决定重新买一台云服务器,只用于我的个人博客。
这篇文章既记录搭建过程,也包括数据迁移部分。我把所有步骤以图+文的形式详细表述出来,以便非专业人员也能参考。
正文
云服务器选择
第一步是选择云服务器。
目前手上在用的3台云服务器和2台云应用服务器都来自 雨云,性价比不错。之前博客在用的是 4核8G300M 的配置,价格大概800/年。这种大带宽的服务器适合做网络相关的任务(比如内网穿透)。如果你也感兴趣,从 这个链接 点进去,注册购买云服务器有5折优惠,优惠码:xiaotie
但这次我考虑了一下,最终还是选了腾讯云,理由有三点:
- 这次重新搭建/迁移博客的目的就是为了稳定性,选大厂的没什么后患
- 价格也可以,个人博客本身也不需要太大带宽,我选了
2核4G6M,3年实付528元。购买后被告知可以免费升级成4核4G6M,更觉不亏了。
大厂的云服务器优惠价购买到期后挺贵的,所以我一步到位买了3年的,这是购买链接。
如果你希望有一个稳定的博客,那么我也建议你买3年的。也有4核4G3M 79/年,比较适合大家一开始练手 - 我买的是云应用服务器,而非云服务器。原因是云应用相比云服务器更便宜,另外我只给个人博客用,东西都是现成的,没有需要对系统 DIY 的场景。安全、稳定、简单是放在首位的。
购买时会让选择应用模板,这里我选了 1Panel Linux面板,方便自己后续加入一些需要的应用,比如 Nginx、VSCode、MySQL 等,这些我们以后都要用到。
1Panel面板配置
云服务器部署好以后点登录进入服务器控制台,输入 sudo /opt/1panel/get-1panel-info.sh 获取 1Panel 的用户名密码
访问脚本输出的面板地址,输入用户名密码,进入 1Panel 主页
安全起见,我们做一些措施。点击左侧菜单面板设置进入设置页
- 在
面板标签页中修改面板用户名和密码 - 在
安全标签页中修改面板端口并开启两步验证(修改面板端口以后需要点进腾讯云应用服务器 - 防火墙,修改面板默认端口为你修改的端口,否则会访问不到)
博客安装
MySQL安装配置
1Panel 左侧菜单点击应用商店,搜索 MySQL,点击安装按钮
版本我选的是 8.4.8,Root密码 填写自定义密码(尽量包含大小写字母+特殊符号,越复杂越安全)。端口改一下,不要用默认的 3306。勾选 端口外部访问
需要改的部分都在下图用红框标记出来了,改完以后最后点击确认按钮
Typecho安装
1Panel应用商店搜索 Typecho,点击安装按钮
版本选择 1.2.1-php8.0-apache,其他需要修改的项都在下图中标记出来了
开放 MySQL 和 Typecho 端口
进入 腾讯云控制台 - 云应用服务器 - 防火墙 - 添加规则:
Typecho配置
访问云应用服务器IP:typecho端口号,发现页面可以访问,但是缺少页面样式:
遇到问题就解决问题:
打开浏览器控制台,发现错误:
原来只有页面HTML通过公网IP映射出来了,而CSS、JS和其他静态资源都去请求localhost了。可能是因为之前在1Panel安装Typecho时的配置项填写错误
- 回到
1Panel,依次点击应用商店 - 已安装 - typecho卡片的参数按钮 - 编辑,将外部访问地址中的localhost替换为云服务器的公网IP,然后确认 - 等待容器重启完成后,刷新
Typecho页面,发现还是没有样式。不着急,先点登录链接进登录页,发现页面正常显示 - 输入之前配置的
Typecho用户名和密码进入管理页面,点击上方菜单中的设置,把站点地址中的localhost替换为云服务器公网IP,保存设置 - 删除此时浏览器地址栏中端口号以后的部分并回车,发现页面正常显示了
插件推荐
Typecho 本身提供了一系列博客相关的功能,但是某些方面还有所欠缺,可以通过市面现有插件扩展功能。下面我推荐常用的插件:
Handsome—— 一款Typecho主题。多种风格自由切换,功能强大但使用简单方便。缺点是这是一款付费插件。插件介绍与安装:https://www.ihewro.com/archives/489/VisitorLoggerPro—— 访客统计插件。支持后台查看实时访客并展示在前台,包括访客IP、地区等信息(可排除搜索引擎蜘蛛记录)。插件介绍与安装:https://blog.ybyq.wang/archives/97.htmlCategoryBatchManager—— 分类统一管理插件。Typecho自带的分类管理并不好用,无法批量修改文章分类。这款插件提供文章管理列表中的批量操作功能,支持移动、添加和移除文章分类,以及单篇文章快速分类修改。插件介绍与安装:https://blog.ybyq.wang/archives/1459.htmlAICover—— 为Typecho接入AI的智能化插件。能够利用AI自动生成文章封面图、标题、摘要以及OG分享图,并提供封面历史管理等功能,旨在提升博客内容创作与SEO优化的效率。 插件介绍与安装:https://www.xiaotiewinner.com/2026/ai-cover-doc.htmlXtSeoMaster—— SEO增强插件。搜索引擎的收录效率是博客能否被人看到的决定性因素,该插件提供Meta标签优化、AMP/MIP页面支持及搜索引擎推送管理等核心功能,旨在全面提升网站在搜索引擎中的可见性与排名。插件介绍与安装:https://www.xiaotiewinner.com/2026/xt-seo-master-doc.html
插件安装
插件的安装方式并不复杂,来到 1Panel页,依次点击 容器 - 编排 - typecho - 目录,然后进入 usr/plugins 目录,可以看到 HelloWorld,这是Typecho初始安装自带的第一个插件。
把从别处下载的插件(压缩包解压出来的文件夹)上传到这个目录,然后在 Typecho管理后台 - 控制台 - 插件 页面可以看到,单击启用,并设置各项值即可
网页配置
我们需要安装 OpenResty(Nginx)以便配置网页,Nginx的作用包括但不限于:
- 作为 Web 服务器 —— 这是它最基本的作用。处理流程为:接收请求 - 找到服务器上的文件 - 返回给浏览器
- 反向代理 —— 为保护网页程序,我们往往不会直接将网页端口暴露于公网,这时就需要Nginx反向代理。不仅可以统一入口,也更安全。
- 处理 HTTPS 证书 —— HTTPS 加密,对 SEO 更好,访问个人博客时浏览器页不会再出现不安全提示
- 静态资源加密与缓存
- 负载均衡处理
- 进入
1Panel页面,依次点击应用商店 - OpenResty - 安装,容器名称输入openresty,然后确认 - 依次点击
网页 - 网站 - 创建网站,按下图红框填写,域名要输入自己的(关于域名注册备案解析等事项,由于本章篇幅太长了,我准备放到下一篇去写),最后点击确认按钮 - 依次点击
网站 - 证书 - DNS账户 - 创建,名称随意填写,根据你的选择域名购买厂商并去官网获取Access key和Secret key并填入。 - 依次点击
网站 - 证书 - 申请证书,按下图填写(域名填写自己的域名),然后等待证书申请成功 - 依次点击
网站 - 域名超链接 - HTTPS,然后像下图一样配置,最后点击保存按钮 - 尝试通过
https://域名访问自己的博客,如果你的域名已经备案通过,此时应该可以成功访问了
下一篇文章介绍博客域名注册、备案,静态资源的CDN加速处理以及市面主流搜索引擎收录、推送
以下内容是我个人博客的迁移过程记录,不感兴趣的话可以跳过
博客迁移
本次迁移仅更换了云服务器,域名、数据库、Typecho、PHP版本等没有变化
为防止博客迁移出错导致恶劣影响,我先将博客迁移至 blog 二级域名,在确保安全无误的前提下再转移至 www 域名
插件迁移
- 在1Panel页面中将迁移前博客的插件目录(
/opt/1panel/docker/compose/typecho/data/usr)和handsome主题目录(/opt/1panel/docker/compose/typecho/data/usr/themes/handsome)压缩并下载,上传至新服务器对应目录,然后解压,看到插件全部迁移过来了 - 删除新服务器上刚刚上传的压缩包,依次启用并参考迁移前的博客设置插件
- handsome主题需要提供新域名授权,添加授权以后,前端访问与显示正常
主题迁移
查看handsome主题的数据备份说明,发现主题数据是保存在数据库中的,这样的话我迁移完数据库应该会把外观设置一起迁移过来。那么就开始迁移DB数据
数据迁移
- 使用navicat连上数据库,导出旧博客数据库Dump文件
- 向新服务器MySQL的typecho库导入数据。一开始导入没反应,猜测可能Typecho对某张表加了锁。尝试先将Typecho容器先停止,然后再次导入数据,成功了
- 再次启动Typecho容器,访问博客前台首页,发现文章以及外观都对上了,但图片不显示,接下来把静态资源迁移过来
静态资源迁移
- 压缩并下载静态资源目录(
/opt/1panel/docker/compose/typecho/data/usr/uploads),上传到新服务器并解压 - 刷新前台页面,图片显示正常
域名解析迁移
阿里云域名解析设置为新服务器的公网IP
问题和解决
虽然博客主页正常访问了,但是此时点击文章或后台管理其他操作都是失败的,错误代码404:
经过调查发现问题是由Typecho自带的地址rewrite功能导致的。前往博客后台 - 设置 - 永久链接,将是否使用地址重写功能先停用再启用,问题就解决了
将 www 域名解析地址更换为新云服务器IP。经测试,域名正常工作,迁移结束。