我的博客

分享技术与思想的点滴

开发日记三

保留子目录已完成。等 Nginx reload 改进那个子 Agent 回来后一起汇总。两个子 Agent 都完成了。汇总一下今天所有改动:


今日全部完成清单

✅ 路径修复(回头补的)

  • suspended.phprequire_once 路径从 ../includes/ 改为 ./includes/
  • 加了「退出登录」按钮,解决被暂停站点用户困在维护页面换不了账号的问题
  • 所有 header.phptrial_banner.php 引入路径从 __DIR__ . '/../../includes/trial_banner.php' 改为 APP_ROOT . '/trial_banner.php'
  • config.php 加了 APP_ROOT 常量

✅ A 路线:试用到期标记 + 续费横幅

  • cron/mark-expired.php — 每天凌晨 4:00 扫描到期站点,写 is_trial_expired 标记
  • includes/plan.php — 加了 isTrialExpired() + getTrialEndDate() 函数
  • admin/index.php — 后台仪表盘顶部黄色续费横幅
  • includes/trial_banner.php — 前台横幅组件
  • 7 个 header.php 全部引入横幅

✅ 注册订阅初始化修复

  • includes/auth.php — 新注册站点查 slug = "trial"billing_cycle = 'monthly'current_period_end = CURDATE() + 30 DAY
  • 13 条旧 lifetime/209-12-31 记录全部重置

✅ Nginx Reload 改进

  • includes/nginx_deploy.php — PHP 只写/删 conf 文件,不再调 nginx reload
  • cron/nginx-watch.php — 每分钟检测 sites-enabled/ 目录变更,有变动自动 nginx -t && nginx -s reload

✅ 保留子目录

  • system_settings 预置 5 个保留路径:admin、api、docs、static、blog
  • public/index.php — 子域名路由前检查保留路径,匹配则跳过站点匹配
  • admin/system/reserved-paths.php — 后台管理页(加 sidebar 入口你自己搞还是我来?)

⚠️ 生产服部署注意

生产服代码 /data/www/sitebuilder/ 路径结构与测试服 /mnt/docker_data/sitebuilder/ 一致(都是容器内 /var/www/html/),部署时:

  1. config.php 要加 APP_ROOT 定义
  2. 改过的文件:auth.php、plan.php、nginx_deploy.php、public/index.php、config.php + cron/ 下两个新脚本
  3. 不要把 trial_banner.phpAPP_ROOT 路径写成 /var/www/html/ 绝对路径——APP_ROOT 已定义为 __DIR__,会自适应
  4. 生产服 crontab 也要加上 mark-expired 和 nginx-watch

要我帮你列一个生产服的部署脚本?