把情侣纪念小站搬到 EdgeOne:不用 PHP 和 MySQL 的版本
LikeGirl 是个情侣纪念小站:显示在一起多少天,能写文章、传照片、列共同愿望,访客还能留祝福。
原版是 PHP + MySQL 的,功能完整但部署门槛不低——得有个虚拟主机、装 PHP、配数据库。我把它适配到了 EdgeOne。
架构换成了什么
1 | 浏览器 |
三层分别对应三个能力:CDN 存静态资源,云函数处理后端逻辑,Blob 存图片和持久化数据。不需要 PHP 运行时,不需要数据库服务。
好处是部署变成了一键:点 Deploy 按钮,仓库拉过去,装依赖、构建、发布全套自动完成。
功能保留了哪些
- 实时显示相恋天数和时间
- 文章、恋爱相册、共同愿望清单
- 访客祝福留言,同一 IP 60 秒限流
- 管理后台维护站点信息、文章、相册、清单和留言
- 上传背景图、相册多图、清单图片
- JPG / PNG / WebP / GIF,单张最大 4MB
- 后台上传保存后,前台刷新就能读到,不用重新构建部署
- 图片替换或记录删除后,自动清理不再被引用的 Blob
两个值得说的实现细节
会话用 HMAC 签名。 后台登录不发无状态 token,也不存 session 表,改成对会话内容做 HMAC 签名后放进 cookie。这样云函数不用维护状态,签名校验在边缘完成。
用户文本统一转义输出。 留言是最典型的注入入口,所有用户提交的内容在输出时统一转义,不靠输入时过滤。
关于授权
原项目是 AGPL v3,这个适配版沿用同一协议,README 里保留了来源说明。改别人的项目,协议和出处这两件事不能省。
一点感想
这个项目其实不是为了自己做——我连对象都没有。纯属看到原版架构太老,想试试在不改业务逻辑的前提下,能把部署简化到什么程度。
结论是:只要商品化程度够高的云平台,一个原本需要虚拟主机的小站,现在可以完全不碰服务器。
- 标题: 把情侣纪念小站搬到 EdgeOne:不用 PHP 和 MySQL 的版本
- 作者: 番星
- 创建于 : 2026-10-15 21:00:00
- 更新于 : 2026-10-21 20:11:26
- 链接: https://xingbox.me/likegirl-edgeone/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。