# GeneAgro CMS 部署与重写规则指南

环境准备
- PHP：7.0 及以上（建议 7.1–7.4），启用 gd、mbstring、curl、mysqli 扩展。
- Web 服务器：Nginx/Apache/IIS 均可，需开启伪静态/URL 重写。
- 时区与编码：建议在 php.ini 中设置 date.timezone=Asia/Shanghai；确保输出编码为 UTF-8。

目录权限
- 需写入权限：runtime、log、static/upload、data 等目录。
- 生产环境最小化权限：仅赋予必要写入目录权限，其他目录只读。

重写规则示例
- Nginx（参考 rewrite/nginx.txt）
  - 典型配置：
    - location / { try_files $uri $uri/ /index.php?$args; }
    - 后台入口保持直达：/iotadmin.php。
- Apache（参考 rewrite/.htaccess）
  - 典型配置：
    - RewriteEngine On
    - RewriteCond %{REQUEST_FILENAME} !-f
    - RewriteCond %{REQUEST_FILENAME} !-d
    - RewriteRule . index.php [L]
- IIS（参考 rewrite/web.config）
  - 使用 URL Rewrite 组件导入 web.config 配置。

应用入口与路由
- 前台入口：index.php。
- 后台入口：iotadmin.php。
- API 入口：api.php。
- 路由：apps/common/route.php（系统内置），config/route.php（项目覆盖与扩展）。

部署流程建议
1) 上传代码至站点目录，确认 PHP 版本与扩展；
2) 配置数据库（config/database.php）与站点参数（config/config.php）；
3) 设置伪静态规则（参考 rewrite 目录）；
4) 访问后台 iotadmin.php 完成站点与 API 配置；
5) 验证前台与 API 可用性；
6) 关闭调试模式（core/convention.php 中 debug=false），开启必要的日志与监控。

安全加固
- HTTPS：建议强制 HTTPS（尤其是后台与 API 访问）。
- 会话安全：启用仅站点路径会话（session_in_sitepath=true），合理设置 Cookie 参数（HttpOnly、Secure）。
- 访问控制：按需配置 access_rule.*（限制特定浏览器/操作系统）。
- 文件上传：限制格式与尺寸，开启水印（如有需求），对上传目录做执行权限隔离（不允许脚本执行）。

性能与运维
- 缓存：根据业务开启 Memcache（cache.handler=memcache）。
- 日志：生产环境建议使用数据库日志，并按周期归档；或文本日志按日切割并外采。
- 备份：数据库定时备份，日志与上传文件定期打包与远端归档。