OpenDocMan 完整教程从零搭建自托管 PHP 文档管理系统DMS【免费下载链接】opendocmanOpenDocMan - Free PHP Document Management System DMS项目地址: https://gitcode.com/gh_mirrors/op/opendocman本文介绍 OpenDocMan——一个免费开源GPL 2.0的自托管文档管理系统DMS基于 PHP 8.2 MySQL 实现可在自己的服务器上完成文档存储、部门级权限管控与版本审批流程适合个人、实验室及需要符合 ISO 17025 文档规范的小团队。项目概览它能做什么文档在线上传与归档浏览器直接上传文件按类别、部门组织支持检索细粒度权限控制按部门或个人配置谁能看到哪些文档防止越权访问版本跟踪每次修订自动留档可随时查看历史版本与变更记录审批流新上传的文件可强制走提交—审核—发布流程未通过的文件不会进入正式库项目结构速览代码住在哪里目录用途public/Web 根目录与静态资源CSS、JS、图片请求统一从这里进入application/controllers/页面逻辑层每个 PHP 文件对应一个 URL 路径如details.php是文件详情页application/models/数据层封装用户、部门、文件、权限等数据库表的操作application/installer/安装向导、数据库迁移与快照备份其中cli.php是免 Web 的命令式入口application/views/页面模板common/通用模板 bootstrap5/现代主题由 Smarty 引擎渲染application/configs/安装完成后生成的config.php及其样例application/includes/多语言包、CSRF 防护、Smarty 模板库等基础设施scripts/Docker 环境的密钥生成、配置校验等辅助脚本tests/PHPUnit 单元/集成测试改代码前先跑一遍结构上它遵循控制器 → 模型 → 视图的分层思路URL 决定加载哪个控制器控制器调用模型读写数据库最后交给模板输出 HTML。三步看懂启动链路从 public/index.php 到页面部署时把 Web 服务器如 Nginx/Apache的文档根目录指向public/之后所有请求都会先落在这个入口文件里链路分三步走public/index.php引入 Composer 自动加载器并用ConfigManager检查configs/config.php是否存在存在则建立 PDO 数据库连接、比对数据库结构版本不一致会强制跳去升级随后加载application/odm-init.php——它负责初始化 Smarty 模板、注入 CSRF 令牌、载入语言包并做安全初始化最后按 URL 路径映射到application/controllers/下的同名文件执行找不到就返回 404。入口中最核心的判断如下摘录自public/index.php$configManager new ConfigManager(); if ($configManager-configExists()) { $configManager-loadConfig(); // 读取 configs/config.php } else { header(Location: /installer/setup-config); // 未安装 → 进安装向导 exit; }也就是说配置不存在时整个系统只干一件事——引导你完成安装配置就绪后它才把控制权交给业务页面。odm-init.php开头同样有一道保险如果数据库常量未定义直接重定向到setup-config避免裸奔运行。关键配置项清单安装前要填什么Docker 部署时先执行./generate-env-secrets.sh生成.env自动填充安全密码再make up启动裸机部署则由安装向导自动生成config.php。核心项一览配置项作用默认值是否需要修改APP_DB_HOSTMySQL 地址可追加端口或 socket 路径localhost数据库不在本机时才改APP_DB_NAME数据库名占位符database_name_here是或用向导/MYSQL_变量指定APP_DB_USER/APP_DB_PASS数据库账号与密码占位符是务必填真实值db_prefix数据表前缀多系统共库时防冲突odm_一般保持默认dataDir上传文档的实际存储目录安装时指定是且需 Web 服务可写、不可被直接浏览ADMIN_PASSWORDDocker.env初始管理员密码脚本生成Docker 部署必改Docker 环境下这些define()会优先读取同名环境变量所以.env里的值会覆盖代码内默认值——生产环境只改.env即可别动配置文件。以上配置就绪后浏览器访问首页即进入登录页首次为 admin 账号登录后需改密。更多细节如备份快照snapshot:create、数据库迁移与升级流程可直接阅读仓库内的 README 与docs/目录下的设计文档。【免费下载链接】opendocmanOpenDocMan - Free PHP Document Management System DMS项目地址: https://gitcode.com/gh_mirrors/op/opendocman创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考