# GeneAgro CMS 使用说明（基于 PbootCMS 3.2.5）

项目简介
- 本项目为 GeneAgro CMS，基于 PbootCMS（核心版本 3.2.5，release 20230421，revise 4）。
- 适用于企业官网、资讯展示与接口输出，包含前台、后台与 API 三部分。

技术栈与主要组件
- 后端：PHP 7.x（建议 7.1–7.4），MySQL（mysqli 驱动）。
- 前端：Bootstrap、jQuery（见 template/default 目录）。
- 其它：可选 Memcache（缓存与会话），日志支持数据库与文本两种。

环境要求与依赖
- PHP 版本：代码中强制校验 7.0+（Check::checkPHP）。不建议在 PHP 8.0 上运行。
- 必需扩展：gd、mbstring、curl；数据库驱动：mysqli；可选扩展：memcache（用于缓存/会话）。
- Web 服务器：需开启伪静态/URL 重写（rewrite 目录提供 Nginx/Apache/IIS 参考）。
- 时区与编码：默认设置为 Asia/Shanghai，输出 UTF-8。
- Composer：仓库已包含 vendor。若 vendor 缺失，可执行 composer install 以补齐依赖。

入口与模块职责
- 前台入口：index.php（网站首页与内容展示）。
- 后台入口：iotadmin.php（系统管理后台）。
- API 入口：api.php（接口输出，含认证校验）。
- 路由配置：
  - apps/common/route.php：定义系统内置的路由分发（admin 系统/内容/会员，前台 sitemap，API list/content/about/search 等）。
  - config/route.php：可进行项目级路由扩展或覆盖。

快速开始
1) 部署代码到 Web 根目录（确保 PHP 与扩展满足要求）。
2) 配置数据库连接：编辑 config/database.php（type=\"mysqli\"，host/user/passwd/port/dbname）。
3) 配置站点与系统参数：编辑 config/config.php（或通过后台配置页）。
4) 配置伪静态/重写：参考 rewrite/.htaccess、nginx.txt、web.config。
5) 访问后台：浏览器打开 http(s)://<域名或IP>/iotadmin.php，首次登录后完善站点信息。
6) 前台访问：浏览器打开 http(s)://<域名或IP>/。
7) API 配置与使用：在后台“系统配置”页开启 WebAPI 并设置认证参数（详见下文“API 认证与示例”）。

常用配置说明（核心项）
- WebAPI（后台系统配置页）
  - api_open：开启/关闭接口能力。
  - api_auth：开启/关闭接口签名认证（建议开启）。
  - api_appid：接口用户名（调用方标识）。
  - api_secret：接口密钥（调用方密钥）。
- 日志
  - 记录方式：core/convention.php 中 log_record_type，可配置为 \"db\" 或 \"text\"。
  - 数据库日志：写入 ay_syslog 表（字段含 level、event、ip、os、bs、user、time）。
  - 文本日志：写至 log/ 目录按日归档（YYYYMMDD.log）。
- 会话与缓存
  - 会话存储：默认文件；如需 Memcache，请在 core/convention.php 配置 session.handler=\"memcache\" 并正确设置地址。
  - 缓存：cache.handler 可选 \"memcache\"，需安装 PHP memcache 扩展。
- 上传与水印
  - 上传格式与尺寸：在 core/convention.php 中 upload.* 与 ico.* 配置。
  - 水印：可在后台配置中开启/设置水印参数。
- 模板与主题
  - 模板目录：template/default；可通过 setTheme/assign 方法进行变量注入与主题切换。

API 认证与示例
- 开启 api_open 后，若 api_auth=1，则每次请求必须带上时间戳与签名。
- 签名生成：sign = md5( md5( api_appid + api_secret + timestamp ) )。
- 时间戳有效期：15 秒内有效，过期拒绝。
- 示例（GET）：/api/list?appid=YOUR_APPID&timestamp=UNIX_TS&sign=YOUR_SIGN
- 主要接口（apps/common/route.php）：list、content、about、search 等。

目录结构速览
- apps/admin：后台控制器、模型与视图。
- apps/home：前台控制器与模型。
- apps/api：接口层（可扩展）。
- apps/common：公共控制器与路由、版本信息。
- core/basic：核心基础类（Controller/Model/Db/Cache/Log 等）。
- core/function：常用函数库（helper/handle/file）。
- core/log：日志实现（数据库与文本）。
- config：项目配置（config.php、database.php、route.php）。
- rewrite：不同服务器的伪静态规则示例。
- template/default：前端模板与静态资源。

部署与运维建议
- 开启伪静态：根据服务器类型使用 rewrite 目录对应示例。
- 生产模式关闭调试：在 core/convention.php 中设置 debug=false。
- 数据库备份：static/backup/sql 目录可用于备份脚本/数据。
- 日志与监控：建议使用数据库日志并对 ay_syslog 做索引与归档。

常见问题
- 访问出现 404：检查伪静态是否生效，确认入口文件路径正确。
- API 调用失败（签名错误或超时）：核对 appid/secret 与签名算法，确保服务器与调用方时间同步。
- 图片上传失败：检查 upload.format 与尺寸限制，确认 GD 扩展已启用。
- 登录或会话异常：若使用 Memcache，确认扩展与地址配置正确；否则使用默认文件存储。

许可协议
- 本项目采用 Apache License 2.0。详见仓库 LICENSE 文件。

版本信息
- Core/App 版本：apps/common/version.php 中 app_version=3.2.5，release_time=20230421，revise_version=4。

致谢
- 基于 PbootCMS 的二次开发与定制改造，感谢原项目与社区贡献。