更新 README 文档,替换为 GeneAgro CMS 使用说明
This commit is contained in:
40
doc/API.md
Normal file
40
doc/API.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# GeneAgro CMS API 使用与认证说明
|
||||
|
||||
开启与配置
|
||||
- 后台系统配置页提供 WebAPI 设置:
|
||||
- api_open:是否开启接口能力;
|
||||
- api_auth:是否开启签名认证(建议开启);
|
||||
- api_appid:接口用户名;
|
||||
- api_secret:接口密钥。
|
||||
|
||||
认证机制
|
||||
- 时间戳与签名:
|
||||
- 传参:appid、timestamp、sign;
|
||||
- 有效期:timestamp 在 15 秒内有效;
|
||||
- 生成:sign = md5( md5( appid + secret + timestamp ) );
|
||||
- 当 api_auth=1 且校验失败时,接口拒绝访问。
|
||||
- 示例(PHP 生成签名):
|
||||
```php
|
||||
$appid = 'YOUR_APPID';
|
||||
$secret = 'YOUR_SECRET';
|
||||
$ts = time();
|
||||
$sign = md5(md5($appid . $secret . $ts));
|
||||
$url = "https://your-domain/api/list?appid={$appid}×tamp={$ts}&sign={$sign}";
|
||||
```
|
||||
|
||||
内置接口(apps/common/route.php)
|
||||
- list:内容列表;
|
||||
- content:单条内容;
|
||||
- about:关于信息;
|
||||
- search:内容搜索;
|
||||
- 具体字段取决于模型层实现,实际项目可扩展 apps/api 以提供自定义数据结构。
|
||||
|
||||
调用建议
|
||||
- 使用 HTTPS;
|
||||
- 发起端与服务端时间同步;
|
||||
- 控制速率与并发,对搜索与列表类接口做分页与缓存(如 Memcache)。
|
||||
|
||||
错误与排查
|
||||
- 403/认证失败:检查 appid/secret 与签名算法,确认时间戳是否过期;
|
||||
- 404/路由不存在:检查 apps/common/route.php 与 config/route.php 是否定义;
|
||||
- 500/内部错误:查看 log/ 文本日志或 ay_syslog 数据库日志,定位模型/控制器异常。
|
||||
61
doc/Architecture.md
Normal file
61
doc/Architecture.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# GeneAgro CMS 架构与目录说明
|
||||
|
||||
总体概览
|
||||
- 项目基于 PbootCMS 内核,按“前台(Home)/后台(Admin)/接口(API)/公共(Common)/核心(Core)”五层组织。
|
||||
- 入口文件:
|
||||
- index.php:前台入口。
|
||||
- iotadmin.php:后台入口。
|
||||
- api.php:接口入口。
|
||||
- 初始化:入口文件加载 core/init.php,完成常量定义、错误处理、自动加载、环境校验与会话初始化。
|
||||
|
||||
核心目录与职责
|
||||
- apps/home:前台控制器与模型,负责页面展示与内容读取。
|
||||
- apps/admin:后台控制器、模型与视图,用于系统配置、内容管理、会员管理等。
|
||||
- apps/api:接口层(如需扩展或新增接口,建议在此目录组织)。
|
||||
- apps/common:公共控制器(AdminController、HomeController、ApiController)、公共路由(route.php)与版本信息。
|
||||
- core/basic:框架基础能力(Controller/Model/Db/Cache/Log/Config/Kernel/Response 等)。
|
||||
- core/function:通用函数库(helper/handle/file)。
|
||||
- core/log:日志实现(数据库与文本)。
|
||||
- core/view:模板视图与解析器。
|
||||
- config:项目级配置(config.php、database.php、route.php)。
|
||||
- template/default:默认主题与静态资源(Bootstrap/JS/CSS)。
|
||||
- rewrite:伪静态规则示例(Apache/Nginx/IIS)。
|
||||
|
||||
加载与路由
|
||||
- 自动加载:core/basic/Basic.php::autoLoad。
|
||||
- 支持框架类、应用类与命名空间类加载。
|
||||
- 路由:apps/common/route.php 定义系统主路由,包括:
|
||||
- 后台:admin/system、admin/content、admin/member。
|
||||
- 前台:sitemap。
|
||||
- 接口:api/list、api/content、api/about、api/search。
|
||||
- 可在 config/route.php 中做项目级路由扩展或覆盖。
|
||||
|
||||
控制器与视图
|
||||
- 基类:core/basic/Controller.php。
|
||||
- display/parser:模板解析与输出,支持 gzip 压缩与运行时统计。
|
||||
- assign/getVar:模板变量注入与获取。
|
||||
- cache:页面缓存(可选)。
|
||||
- log:统一日志写入(支持 db/text)。
|
||||
- 视图引擎:core/view/*(Parser/View),支持主题与变量替换。
|
||||
|
||||
会话与缓存
|
||||
- 会话:Basic::setSessionHandler,默认文件存储;支持 Memcache(需安装扩展并配置)。
|
||||
- 缓存:core/cache/*,Memcache 驱动可选(需启用扩展与配置)。
|
||||
|
||||
日志
|
||||
- 文本日志:core/log/LogText.php,日志文件位于 log/ 下,按日归档。
|
||||
- 数据库日志:core/log/LogDb.php,写入 ay_syslog 表(字段:level、event、ip、os、bs、user、time)。
|
||||
- 控制器内通过 $this->log(...) 或 Controller::log(...) 写入。
|
||||
|
||||
文件与上传
|
||||
- 文件/目录:core/function/file.php 提供创建、检测、复制、列表、删除等工具函数。
|
||||
- 上传:upload() 支持格式校验、尺寸限制与水印(配合配置项使用)。
|
||||
|
||||
版本与配置覆盖
|
||||
- 默认配置:core/convention.php。
|
||||
- 应用配置覆盖:config/config.php 与 config/route.php。
|
||||
- 版本:apps/common/version.php(app_version=3.2.5)。
|
||||
|
||||
扩展与集成
|
||||
- core/extend:二维码、Excel、腾讯云 COS、Ueditor 等扩展。
|
||||
- core/weixin:微信相关 SDK(网页授权、模板消息、JS-SDK 等)。
|
||||
27
doc/CHANGELOG_template.md
Normal file
27
doc/CHANGELOG_template.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# 变更日志模板(示例)
|
||||
|
||||
说明
|
||||
- 建议采用语义化、分门别类记录每次发布的变化,便于回溯与审核。
|
||||
- 分类:Added(新增)、Changed(变更)、Fixed(修复)、Removed(移除)、Security(安全)。
|
||||
|
||||
Unreleased
|
||||
- Added:
|
||||
- Changed:
|
||||
- Fixed:
|
||||
- Security:
|
||||
|
||||
3.2.5 - 2023-04-21
|
||||
- Added:升级核心至 3.2.5;新增/调整部分系统配置项。
|
||||
- Changed:优化接口签名与时效校验(ApiController)。
|
||||
- Fixed:兼容性与稳定性修复若干。
|
||||
|
||||
3.2.x - 2023-XX-XX
|
||||
- Added:
|
||||
- Changed:
|
||||
- Fixed:
|
||||
|
||||
记录规范
|
||||
- 每次发布必须记录版本号、日期与核心变化;
|
||||
- 所有文件/接口/配置的破坏性变更需在 \"Changed\" 或 \"Removed\" 中明确标注;
|
||||
- 安全相关修复应在 \"Security\" 分类中突出说明与影响范围;
|
||||
- 建议附上迁移指南(如有数据库结构或配置项变化)。
|
||||
49
doc/Deployment.md
Normal file
49
doc/Deployment.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 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)。
|
||||
- 日志:生产环境建议使用数据库日志,并按周期归档;或文本日志按日切割并外采。
|
||||
- 备份:数据库定时备份,日志与上传文件定期打包与远端归档。
|
||||
48
doc/Infrastructure.md
Normal file
48
doc/Infrastructure.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# GeneAgro CMS 基础设施使用说明(数据库/缓存/日志/上传)
|
||||
|
||||
数据库
|
||||
- 配置文件:config/database.php。
|
||||
- 主要参数:type=\"mysqli\",host、user、passwd、port、dbname、prefix(默认 ay_)、charset(utf8)。
|
||||
- 事务:可在 core/convention.php 中配置 database.transaction。
|
||||
- 使用建议:
|
||||
- 为 ay_syslog(系统日志表)创建必要索引(如 time、level)。
|
||||
- 生产环境开启最小化权限账号(仅当前库权限)。
|
||||
|
||||
缓存与会话
|
||||
- 会话存储:默认文件。
|
||||
- 切换为 Memcache:在 core/convention.php 设置 session.handler=\"memcache\",并配置 session.path 与 cache.server(host:port)。
|
||||
- 注意事项:
|
||||
- 需要安装 PHP memcache 扩展;确保 Memcache 服务可用。
|
||||
- Basic::setSessionHandler 中会话路径键名为 \"seesion.path\"(存在拼写问题)。若启用 Memcache 会话,请在 config/config.php 中使用 \"seesion.path\" 键进行覆盖,或修复 Basic.php 将其改为 \"session.path\"。
|
||||
- 缓存:core/cache/*。
|
||||
- Memcache 驱动:通过 cache.handler=\"memcache\" 启用。
|
||||
- 适用场景:热点数据、配置缓存、列表页缓存等。
|
||||
|
||||
日志
|
||||
- 配置:core/convention.php 中 log_record_type(\"db\" 或 \"text\")。
|
||||
- 文本日志:
|
||||
- 位置:log/ 目录,按日期分文件(YYYYMMDD.log)。
|
||||
- 字段:level、content、ip、os、bs、user、time。
|
||||
- 数据库日志:
|
||||
- 表:ay_syslog(通过 core/log/LogDb.php 写入)。
|
||||
- 字段:level、event、ip、os、bs、user、time。
|
||||
- 写入方式:控制器中使用 $this->log($level, $content) 或 Controller::log(...)。
|
||||
|
||||
上传与水印
|
||||
- 入口函数:core/function/file.php::upload。
|
||||
- 配置项:
|
||||
- upload.format:允许上传的扩展名列表(如 jpg|png|gif|bmp|jpeg)。
|
||||
- upload.max_width / upload.max_height:最大尺寸限制。
|
||||
- ico.max_width / ico.max_height:缩略图尺寸限制。
|
||||
- 水印:在后台系统配置开启后,上传函数执行水印处理(需 GD 扩展)。
|
||||
- 存储路径:默认 static/upload/image/ 下(可按业务自定义与扩展)。
|
||||
|
||||
安全与合规
|
||||
- 访问控制:core/convention.php 的 access_rule.* 可限制特定浏览器或操作系统访问。
|
||||
- 会话安全:建议开启仅站点路径会话(session_in_sitepath=true),并启用 HttpOnly 与 Secure(按站点 HTTPS 情况设置)。
|
||||
- 文件权限:确保 runtime、log、static/upload、data 等目录具备写入权限;生产环境最小化权限策略。
|
||||
|
||||
运维建议
|
||||
- 定期归档日志:按日/周归档 text 日志或对 ay_syslog 做清理策略。
|
||||
- 数据库备份:static/backup/sql 可存放备份脚本,建议配合定时任务与远程备份。
|
||||
- 性能优化:合理使用 Memcache;长列表页可结合分页与缓存降低数据库压力。
|
||||
Reference in New Issue
Block a user