选型的出发点:别养太多东西
这个博客 2026 年初搭起来,选型只围绕一个目标:一个人维护、成本尽量低、三年后还搬得动。我评估过静态生成和几种现成 CMS,最后选了 PbootCMS 配 SQLite,模板自己写。理由不复杂,静态站最省心,但我想保留后台里改点东西、分类和标签能随手调整的便利;而传统 CMS 配 MySQL 又多一个要照顾的进程,对一个流量不大的小博客没必要。PbootCMS 本身轻,支持 SQLite,正好卡在中间。
还有一个很私人的原因:我的备份脚本本来就是打包文件和目录的,如果数据全在一个文件里,备份逻辑就能保持最简单。选型时把运维成本算进去,比只比功能更接近真实情况。
具体怎么落的
环境就是 PHP 加一个 SQLite 文件,没有独立的数据库服务。PbootCMS 负责内容、栏目和模板解析,数据落在 runtime 目录下的库文件里,备份就是复制一个文件,这点对我太重要了,数据库也能一起进打包脚本,不用单独导出再导入。站点结构按栏目分:导航、关于我,以及几个记录类栏目,每篇文章的数据以 PHP 数组形式放在 content 目录,读进来直接渲染,结构一眼能看明白。
模板我没用现成主题,自己写了一套很朴素的页面:上半部分是分组的卡片,下半部分是文章列表,样式表控制在很小的范围,颜色只定主色和几级灰,图标统一一套。原因还是可维护,自己写的每一行都知道在哪,出样式问题不用去翻别人主题里几千行覆盖规则。这个站点本身就是我环境要能照笔记重建那套想法的一次实践,连配色和间距都只用了两三个固定值。
踩过的几个坑
SQLite 并发写是第一个要注意的:它适合读多写少,博客正好是这个形态,但我还是把后台操作和定时脚本错开时间,避免两个写撞在一起。第二个是文件权限,不同系统上 runtime 目录的可写要求不一样,换过一次主机就因为缓存目录没权限白屏,后来把权限检查写进部署清单了。第三个是备份要连 content 目录一起备,光备数据库文件,模板和内容数组丢了照样恢复不了,这一条我特意在备份脚本里补了目录列表。
还有个习惯:所有改模板、改配置的动作都先在本机跑一遍再传上去,并且每次改动前把当前能用的版本复制一份留着。一个人维护没有回滚按钮,回滚得自己提前造好。真出问题时我不会在服务器上边改边试,那样最容易把小毛病改成大故障。
| 部件 | 选择 | 图的是 |
|---|---|---|
| 程序 | PbootCMS | 轻、带后台、支持 SQLite |
| 数据 | SQLite 单文件 | 备份就是复制文件 |
| 模板 | 自写 | 每一行都清楚在哪 |
| 部署 | 脚本加清单 | 换主机可照笔记重建 |
没什么高深架构。就是一台小机器、一个 PHP、一个文件当数据库,加上一份能照着重建的笔记,够用,且我一个人兜得住。