先说结论
交付给客户的系统,安装体验就是第一印象。装不上,后面做得再好也没用。
四步向导
- 环境检测:PHP 版本、扩展、目录权限
- 数据库:地址、账号、库名,自动建表
- 站点与管理员:站点名、域名、管理员账号
- 主语言与初始分类:默认语言、初始栏目
每步都能返回上一步,失败有明确提示(不是白屏)。
21 项自检
php spark duo:health 或访问 /health,检查:
- PHP 版本与扩展(intl、mbstring、mysqli、gd、curl、openssl、zip)
- 目录可写(writable、uploads)
- 数据库连接与表完整性
- 时区与 locale
- 上传大小限制
- HTTPS 与伪静态
- 缓存目录状态
输出是给人看的:每项 ✅ / ❌ + 一句怎么修。
一个刻意的设计:不写示例内容
安装完成后,站点是空的:
- 关于页模块默认关闭
- 统计数字为空
- hero 文案为空
原因:示例文案最容易被直接带到线上。宁可让客户看到空白,也不要看到"lorem ipsum"。
需要演示数据时,用单独的 CLI 命令 duo:demo-content 生成,和安装流程解耦。
install.lock 的作用
安装完成后写 install.lock,再次访问 /install 直接 403。防止被人重装覆盖数据。
升级时删除 lock 重新走一遍?不行——升级走迁移,不走安装器。
客户最常卡住的三步:伪静态没配(除首页全 404)、writable 目录权限不对、PHP 缺 intl 扩展。安装器现在会直接指出是哪一项,并给出对应的修复命令。