diff --git a/README.md b/README.md index ab522bf..6b5ea38 100644 --- a/README.md +++ b/README.md @@ -1,103 +1,93 @@ -# PbootCMS +# GeneAgro CMS 使用说明(基于 PbootCMS 3.2.5) -### PbootCMS是全新内核且永久开源免费的PHP企业网站开发建设管理系统,是一套高效、简洁、 强悍的可免费商用的PHP CMS源码,能够满足各类企业网站开发建设的需要。系统采用简单到想哭的模板标签,只要懂HTML就可快速开发企业网站。官方提供了大量网站模板免费下载和使用,将致力于为广大开发者和企业提供最佳的网站开发建设解决方案。 -* 系统采用高效、简洁、强悍的模板标签,只要懂HTML就可快速开发企业网站; -* 系统采用PHP语言开发,使用自主研发的高速多层开发框架及缓存技术; -* 系统默认采用sqlite轻型数据库,放入PHP空间即可直接使用,可选mysql等数据库,满足各类存储需求; -* 系统采用响应式管理后台,满足各类设备随时管理的需要; -* 系统支持后台在线升级,满足系统及时升级更新的需要; -* 系统支持内容模型、多语言、自定义表单、筛选、多条件搜索、小程序、APP等功能; -* 系统支持多种URL模式及模型、栏目、内容自定义地址名称,满足各类网站推广优化的需要。 +项目简介 +- 本项目为 GeneAgro CMS,基于 PbootCMS(核心版本 3.2.5,release 20230421,revise 4)。 +- 适用于企业官网、资讯展示与接口输出,包含前台、后台与 API 三部分。 -## 简单到想哭的模板标签: -``` -1、全局标签示意: -{pboot:sitetitle} 站点标题 -{pboot:sitelogo} 站点logo +技术栈与主要组件 +- 后端:PHP 7.x(建议 7.1–7.4),MySQL(mysqli 驱动)。 +- 前端:Bootstrap、jQuery(见 template/default 目录)。 +- 其它:可选 Memcache(缓存与会话),日志支持数据库与文本两种。 -2、列表页标签示意: -{pboot:list num=10 order=date} -
-{/pboot:list} +环境要求与依赖 +- 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 以补齐依赖。 -3、内容页标签示意: -{content:title} 标题 -{content:subtitle}副标题 -{content:author} 作者 -{content:source} 来源 +入口与模块职责 +- 前台入口: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 方法进行变量注入与主题切换。 -## 主要功能: -* 支持自定义模板 -* 支持站点信息后台配置 -* 支持无限极栏目 -* 支持自定义内容模型 -* 支持自定义内容字段 -* 支持专题单页内容 -* 支持列表内容管理 -* 支持内容复制移动 -* 支持自定义栏目地址 -* 支持自定义内容地址 -* 支持多语言区域建站 -* 支持手机独立模板 -* 支持手机版域名绑定 -* 支持首页分页 -* 支持页面SEO优化 -* 支持在线留言 -* 支持幻N组灯片轮播 -* 支持友情链接 -* 支持自定义表单 -* 支持多条件筛选 -* 支持多条件搜索 -* 支持验证码开关 -* 支持留言发送到多邮箱 -* 支持API对接 -* 支持小程序/APP开发 -* 支持Ajax远程获取数据 -* 支持自定义标签 -* 支持全站伪静态 -* 支持前端动态缓存 -* 支持系统角色管理 -* 支持完整角色权限管理 -* 支持多用户在线管理 -* 支持系统日志功能 -* 支持数据库在线管理 -* 支持后台在线升级 -* 支持自定义URL模式 +API 认证与示例 +- 开启 api_open 后,若 api_auth=1,则每次请求必须带上时间戳与签名。 +- 签名生成:sign = md5( md5( api_appid + api_secret + timestamp ) )。 +- 时间戳有效期:15 秒内有效,过期拒绝。 +- 示例(GET):/api/list?appid=YOUR_APPID×tamp=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:前端模板与静态资源。 -发布的源码默认采用sqlite数据库,放入PHP(7.0+)空间即可直接使用(不支持php8.0)。 +部署与运维建议 +- 开启伪静态:根据服务器类型使用 rewrite 目录对应示例。 +- 生产模式关闭调试:在 core/convention.php 中设置 debug=false。 +- 数据库备份:static/backup/sql 目录可用于备份脚本/数据。 +- 日志与监控:建议使用数据库日志并对 ay_syslog 做索引与归档。 -如果需要启用Mysql版本,请导入目录下数据库文件/static/backup/sql/xxx.sql,同时请注意使用最新日期名字的脚本文件,并修改config/database数据库连接文件信息。 +常见问题 +- 访问出现 404:检查伪静态是否生效,确认入口文件路径正确。 +- API 调用失败(签名错误或超时):核对 appid/secret 与签名算法,确保服务器与调用方时间同步。 +- 图片上传失败:检查 upload.format 与尺寸限制,确认 GD 扩展已启用。 +- 登录或会话异常:若使用 Memcache,确认扩展与地址配置正确;否则使用默认文件存储。 -系统后台默认访问路径:http://ip/admin.php 账号:admin 密码:123456, +许可协议 +- 本项目采用 Apache License 2.0。详见仓库 LICENSE 文件。 +版本信息 +- Core/App 版本:apps/common/version.php 中 app_version=3.2.5,release_time=20230421,revise_version=4。 -## 升级说明: - -* 使用后台在线升级(推荐): - -支持跨版本升级,会自动升级数据库及代码文件。 - -* 使用全包升级: - -支持跨版本升级,保留config、data、static、template目录,其余全部用新版替换, 同时如果涉及到的中间版本有升级数据库,需要使用群文件数据库脚本升级数据库。 - - -## 授权声明: -1、PbootCMS是免费可商用的建站系统,用户通过官网获取免费域名授权码即算授权成功,并且永久有效。对于已经授权的域名也不存在未来收费的说法,大家可以放心使用。 - -2、PbootCMS系统允许个人或公司进行任意二开及商用,但是不允许任何形式的破解或绕过系统授权的行为,包括但不限于通过PbootCMS系统建设网站、二次开发、发布衍生版本等情况,对于任何破解或绕过PbootCMS官网授权的行为,我们将保留依法追究法律责任的权力。 - -3、PbootCMS除了一个授权文件代码外,其它代码全部开源,并使用Apache2开源协议。对于任何基于PbootCMS进行二开的系统,应该遵守Apache2开源协议的有关要求。 - -4、PbootCMS官方不对使用本软件所构建网站中的文章、商品和其它任何信息承担责任,不管您通过任何渠道下载本软件,您一旦开始安装PbootCMS,即被视为完全理解并接受PbootCMS授权声明的各项条款。 - -## 联系我们: -官方网站:https://www.pbootcms.com/ - -Gitee:https://gitee.com/hnaoyun/PbootCMS +致谢 +- 基于 PbootCMS 的二次开发与定制改造,感谢原项目与社区贡献。 diff --git a/README_CN.md b/README_CN.md new file mode 100644 index 0000000..2108619 --- /dev/null +++ b/README_CN.md @@ -0,0 +1,93 @@ +# 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×tamp=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 的二次开发与定制改造,感谢原项目与社区贡献。 \ No newline at end of file diff --git a/doc/API.md b/doc/API.md new file mode 100644 index 0000000..2d747d9 --- /dev/null +++ b/doc/API.md @@ -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 数据库日志,定位模型/控制器异常。 \ No newline at end of file diff --git a/doc/Architecture.md b/doc/Architecture.md new file mode 100644 index 0000000..772e0c5 --- /dev/null +++ b/doc/Architecture.md @@ -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 等)。 \ No newline at end of file diff --git a/doc/CHANGELOG_template.md b/doc/CHANGELOG_template.md new file mode 100644 index 0000000..83b9609 --- /dev/null +++ b/doc/CHANGELOG_template.md @@ -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\" 分类中突出说明与影响范围; +- 建议附上迁移指南(如有数据库结构或配置项变化)。 \ No newline at end of file diff --git a/doc/Deployment.md b/doc/Deployment.md new file mode 100644 index 0000000..574f2fd --- /dev/null +++ b/doc/Deployment.md @@ -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)。 +- 日志:生产环境建议使用数据库日志,并按周期归档;或文本日志按日切割并外采。 +- 备份:数据库定时备份,日志与上传文件定期打包与远端归档。 \ No newline at end of file diff --git a/doc/Infrastructure.md b/doc/Infrastructure.md new file mode 100644 index 0000000..1ba33ba --- /dev/null +++ b/doc/Infrastructure.md @@ -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;长列表页可结合分页与缓存降低数据库压力。 \ No newline at end of file