
想要一个只用来写字的博客,装上 WordPress 之后常会觉得重了——后台菜单一大排,插件动不动就要更新,2 GB 内存的机器跑起来还偏慢。Typecho 走的是另一条路:核心程序只有几 MB,原生支持 Markdown,1 核 1 GB 的机器就能流畅跑。本文按我搭这类博客的顺序来写:先判断该不该选它,再部署环境、装程序、配 HTTPS 和伪静态,最后讲几个上线后最容易出问题的地方。
选错程序,后面再迁移会很麻烦,所以这一步值得花两分钟。
对比维度 | Typecho | WordPress |
|---|---|---|
程序体积 | 几 MB | 几十 MB |
资源占用 | 很低,1 核 1 GB 可流畅运行 | 较高,建议 2 核 2 GB 起 |
后台响应 | 轻快 | 插件多时会变慢 |
主题数量 | 较少,以简洁风格为主 | 数量庞大,风格齐全 |
插件生态 | 覆盖基础需求 | 几乎任何功能都有现成插件 |
写作方式 | 原生支持 Markdown | 需要编辑器插件配合 |
我的判断标准很简单:只写文章、在意打开速度和后台清爽,选 Typecho;需要商城、会员、复杂表单这类功能,直接上 WordPress。
有一类人特别适合 Typecho:习惯用 Markdown 写作的技术作者。原生 Markdown 支持意味着你在本地写好的文档可以直接贴进来,不用来回调格式。
反过来,如果你对主题效果有很具体的要求,Typecho 的主题库可能满足不了——这一点最好在动手前去主题站逛一圈,确认有你能接受的风格。
项目 | 最低配置 | 建议配置 |
|---|---|---|
CPU | 1 核 | 1~2 核 |
内存 | 1 GB | 2 GB |
磁盘 | 20 GB | 40 GB |
操作系统 | Ubuntu 22.04 / 24.04、Debian 12 | 同左 |
运行环境:Nginx 或 Apache,PHP 7.4 及以上(我会选 8.1 或 8.2),数据库用 MySQL 5.7 以上、MariaDB 10.2 以上或 SQLite 都行。
数据库这里有个取舍。 SQLite 不用单独装数据库服务,部署最省事;但文章多了以后备份和迁移不如 MySQL 方便,也不好做远程管理。我的建议是:纯个人博客、预计文章量不大,用 SQLite 没问题;打算长期写、或者以后可能换服务器,直接用 MySQL。本文按 MySQL 来写。
需要放通的端口:
端口 | 协议 | 用途 |
|---|---|---|
22 | TCP | SSH 登录(默认已放通) |
80 | TCP | HTTP,用于证书验证与跳转 |
443 | TCP | HTTPS 访问 |
面板端口 | TCP | 面板管理后台 |
面板端口一定要限制来源 IP,只放通你自己的办公网或家庭宽带出口。面板是整台服务器的控制入口,对全网开放会持续被扫描和尝试登录。
我习惯用可视化面板部署,能省掉手动配 Nginx 和 PHP 的排错时间:
sudo apt update && sudo apt upgrade -y
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh
sudo bash quick_start.sh安装完终端会输出面板地址、入口路径、账号和密码。这几项立刻存下来——面板地址里有一段自定义路径,丢了得重新登录服务器去查。
登录面板后装三样东西:
创建 PHP 环境时确认这三个扩展是开启的:pdo_mysql、mbstring、gd。我见过最多的安装失败就出在这里——缺 pdo_mysql 会在安装向导那一步报连不上数据库,而错误提示并不会告诉你是扩展没装,很容易让人去反复核对数据库密码。
建库:在面板的数据库里创建库和用户,记下库名、用户名、密码。
建站:创建网站,类型选运行环境,绑定刚才的 PHP 环境,填上域名。
放程序:打开站点根目录,用面板的远程下载功能从 Typecho 官方渠道获取程序包,解压到根目录。
解压后先看一眼文件层级。 压缩包里通常多包了一层目录,需要把里面的内容挪到根目录,或者在站点设置里把运行目录指向那个子目录。这一步弄错,访问时会看到一个文件列表而不是安装页——不报错,但就是不对。
设目录权限:
sudo chown -R www:www /站点根目录
sudo chmod -R 755 /站点根目录
sudo chmod -R 777 /站点根目录/usr/uploadsusr/uploads 是附件目录,必须可写,否则后面上传图片会失败。具体的用户名以面板里 PHP 环境实际的运行身份为准,不一定是 www。
走安装向导:浏览器打开站点地址,选 MySQL,填库信息,设管理员账号。
两个细节:
localhost。 在容器里 localhost 指向容器自己,填了一定连不上。这是我被问到最多的问题之一。admin,密码 12 位以上。博客后台地址是公开可猜的,admin 是爆破脚本第一个尝试的名字。装完会提示后台地址,通常是站点地址加 /admin。
在域名服务商处加两条解析:
主机记录 | 记录类型 | 记录值 |
|---|---|---|
@ | A | 服务器公网 IP |
www | A | 服务器公网 IP |
两条都要加,否则带不带 www 只有一个能访问。
解析生效后先验证:
dig +short www.example.com返回的 IP 对了,再去面板的站点 SSL 设置里申请免费证书,签发后开启强制 HTTPS。
然后一定要回 Typecho 后台改站点地址,改成 https 开头。这一步漏掉的话,页面会出现混合内容告警,样式或图片可能加载不出来——而且问题是"部分资源加载失败",不细看还以为是主题坏了。
验证:
curl -I https://www.example.com
curl -I http://www.example.com第一条返回 200,第二条返回 301 跳转到 https,就对了。
服务器位于中国内地、使用域名对外提供服务时,需要先完成 ICP 备案。
Typecho 默认的文章链接带参数,既不好看也不利于搜索收录。在后台的永久链接设置里开启地址重写,选一个链接格式——按年月加文章缩略名是比较常见的选择。
开启之后,必须在 Web 服务器上配对应的重写规则。 在面板的站点设置里找到伪静态,选 Typecho 的规则保存。
这一步不做,所有文章页都会 404,而首页看起来完全正常。这是 Typecho 新站最典型的"上线就翻车"场景:你改完永久链接,看首页没问题就以为好了,结果读者点进任何一篇文章都打不开。
所以改完永久链接一定要实际点开一篇文章确认。
手动配 Nginx 的话,核心规则是把不存在的路径交给入口文件处理:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
}主题放在 usr/themes 目录,解压进去后在后台外观里启用。
挑主题时我会看三件事:支不支持当前 Typecho 版本、作者是否还在维护、有没有引入一堆外部资源。最后一条容易被忽略——有些主题加载了大量外部字体和脚本,在国内或海外访问时其中某个资源慢了,整个页面都会被拖住。
插件放在 usr/plugins,同样在后台启用。常用的方向:代码高亮、评论增强、站点地图、缓存、图片懒加载。
插件别装太多。 Typecho 的价值就是轻,装上十几个插件,这个优势就没了。我一般只装真正用得上的三五个。
验证项 | 怎么验证 | 不通过通常是什么原因 |
|---|---|---|
HTTPS 访问 |
| 证书未签发或解析未生效 |
后台登录 | 访问后台地址并登录 | 入口路径错误 |
发文章 | 发一篇测试文章,前台可见 | 数据库读写异常 |
文章页可访问 | 点开测试文章 | 伪静态未配置 |
图片上传 | 文章里插一张图并显示 |
|
评论 | 测试文章下发一条评论 | 评论设置或插件冲突 |
移动端 | 手机打开站点 | 主题不适配移动端 |
第四项最容易漏,也最容易在上线后才被读者发现。
提示数据库连接失败:先查 pdo_mysql 扩展有没有开,再核对库名、用户名、密码、地址。容器化部署记得地址填容器服务名。
文章页 404:伪静态没配或没生效,按第六节处理。
图片上传失败:三处都要满足——usr/uploads 可写、PHP 上传大小限制、Web 服务器请求体大小限制。只改一处往往不生效。
后台正常但前台空白:多半是主题报错。把当前主题目录临时改个名,Typecho 会回退到默认主题;前台恢复了,就确定是主题的问题。
启用 HTTPS 后样式丢失:站点地址没改成 https,或者旧文章里有 http 开头的图片链接,需要批量替换。
访问慢:Typecho 本身很轻,慢通常另有原因。打开浏览器开发者工具看哪个资源加载最久——十有八九是没压缩的大图,或者主题引的某个外部资源。
备份要覆盖两部分:数据库(文章、评论、配置)和站点文件(主题、插件、usr/uploads 下的附件)。
附件目录是最容易被漏掉的。 只备份了数据库,恢复后文章都在,但里面的图片全部裂开。
mysqldump -u typecho -p'密码' --single-transaction typecho | gzip > ~/typecho-db-$(date +%Y%m%d).sql.gz
tar -czf ~/typecho-files-$(date +%Y%m%d).tar.gz -C /站点根目录 usr在面板的计划任务里设成自动执行,并把备份同步到服务器之外。只留在本机的备份,服务器出问题时会一起没。
至少做一次恢复演练。 用备份在另一个环境还原一次,确认文章、评论、图片都在。备份能生成,不等于能恢复。
变更前建快照:升级程序、换主题之前先建一份快照。回滚会把整块系统盘恢复到快照时间点,之后写入的内容会被清除,运行中的实例会自动关机,所以回滚前先确认这段时间有没有新发的文章。
日常维护几件事:关注版本更新及时打安全补丁;开启评论审核或验证,垃圾评论会比你想象的多;检查磁盘剩余空间。
内容方面:文章里用到的图片和引用内容要确认有权使用,转载需要获得授权并标注出处;开放评论意味着你要对评论区内容承担管理责任;不发布违法违规内容。
Typecho 搭起来之后基本不需要怎么操心,这也是我推荐它给纯写作场景的原因。如果后面图片越来越多、带宽开始吃紧,再考虑把附件迁到对象存储并配合内容分发网络加速。
个人博客这类轻量站点,轻量应用服务器的入门套餐即可流畅运行 Typecho,套餐式规格费用透明,配合快照功能可以在升级或换主题前随时保留一份可回退的环境。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。