适用于自行部署的技术人员。若由服务台托管,可跳过本章。
系统基于 PHP 8 与 SQLite 构建,不需要单独安装 MySQL 等数据库服务,一台普通云主机即可运行。
| 组件 | 最低要求 | 推荐 |
|---|---|---|
| PHP | 8.0 | 8.2 |
| 内存 | 1 GB | 2 GB |
| CPU | 1 核 | 2 核 |
| 磁盘 | 10 GB | 40 GB(含备份) |
必需的 PHP 扩展:
部署完成后,建议通过 php -m 或宝塔面板确认扩展已启用。缺少 pdo_sqlite 会导致系统无法启动。
将系统代码上传至服务器后,目录结构如下(重点是 public/ 与 database/ 同级):
| 目录 | 说明 |
|---|---|
public/ | 网站根目录,Nginx / IIS 应指向这里 |
app/ | 控制器、核心框架、中间件、服务层 |
config/ | 应用、数据库、路由、日志配置 |
database/ | SQLite 数据库文件与迁移脚本 |
resources/views/ | 视图模板 |
storage/ | 日志、缓存、升级备份 |
把网站根目录指向 public/ 是安全设计的关键一步。这样数据库文件与配置都在 Web 可访问范围之外,无法通过 URL 直接下载。
复制 .env.example 为 .env,按实际情况修改:
APP_NAME=教籍册管理系统 APP_ENV=production APP_DEBUG=false APP_URL=https://your-domain/ APP_KEY=请填写32位随机字符串 DB_MODE=single DB_PATH=database/jiaojice.db SESSION_SECURE=true SESSION_LIFETIME=7200
APP_ENV:生产环境填 production,会关闭错误显示。APP_KEY:32 位随机串,用于加密签名,请勿使用示例值。DB_MODE:single 为单教区模式,multi 为多教区 SaaS 模式。SESSION_SECURE:站点启用 HTTPS 后必须设为 true。系统依赖伪静态实现简洁 URL。三个平台的规则如下。
在站点设置的「伪静态」中填入:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
public/.htaccess 已内置,只需确保虚拟主机配置了 AllowOverride All。
public/web.config 已内置,需服务器安装 URL Rewrite 模块。
三个平台的内置规则均已包含禁止访问 .db、.env、.log 等敏感文件的条目,请勿删除。
系统核心功能无需 Composer 依赖即可运行。只有 AI 报告 PDF 导出需要 mPDF:
composer install --no-dev --optimize-autoloader
未安装时,PDF 导出会自动回退为浏览器打印,不影响其他功能。
浏览器打开 https://your-domain/login,使用开通时提供的初始账号登录。
首次登录或重置密码后,系统会强制要求修改密码才能继续使用。
进入「系统设置」,填写系统标题,并按教区习惯自定义层级名称(如「堂区」改为「分堂区」)。
依次创建教区 → 堂区 → 堂口。单教区使用可只建一个教区。
在标签管理中预设称谓、团体、片区等常用标签,录入成员时即可直接选择。
SQLite 是单文件数据库,备份极为简单——复制这个文件即可。系统支持热备份(.backup 命令不锁库),无需停机。
# 每日备份示例(加入 crontab) sqlite3 database/jiaojice.db ".backup '/backup/jiaojice_$(date +%F).db'" # 仅保留 30 天 find /backup -name "jiaojice_*.db" -mtime +30 -delete
storage/logs/ 下的最新日志。常见原因是 .env 缺失、APP_KEY 为空,或 storage/ 目录无写入权限。
Linux 下可执行 chmod -R 775 storage database。
public/。请确认 Nginx 的 root 指令以 /public 结尾,并已填入 try_files 规则。
SESSION_SECURE 设为 false,或反之。请把 SESSION_SECURE 与站点协议保持一致后清除浏览器 Cookie 重试。
composer install 后重试;若暂不安装,可直接使用浏览器打印功能导出。
以上问题仍未解决?把 storage/logs/ 中的报错信息发给我们,会尽快协助排查。