文档目录
系统要求

简介

本文件为 DouPHP 项目的系统要求说明,聚焦于服务器环境、Web 服务器配置、文件系统权限、资源建议与环境自检方法。内容基于项目源码与配置文件进行梳理,帮助在不同部署环境中正确安装与运行。

项目结构

DouPHP 采用“前台/后台/API/小程序”多入口模式,统一由根目录的引导脚本完成版本检测、路径定义、配置加载与路由初始化;Web 服务器通过重写规则将请求分发到对应入口。

graph TB
A["客户端"] --> B["Web 服务器<br/>Apache/Nginx"]
B --> C[".htaccess 重写规则"]
C --> D["前台入口 index.php"]
C --> E["后台入口 admin/index.php"]
C --> F["API 入口 api/index.php"]
D --> G["核心引导 core/bootstrap.php"]
E --> G
F --> G
G --> H["站点配置 config/config.php"]
G --> I["存储目录 storage/"]

图示来源

  • .htaccess:10-45
  • core/bootstrap.php:19-65

核心组件

  • PHP 版本检测:在应用引导阶段强制要求最低 PHP 版本,不满足则直接终止执行。
  • 数据库配置:集中存放主机、库名、用户、密码、表前缀与字符集等常量。
  • 存储与上传:默认本地磁盘,提供单文件上传大小限制与允许扩展名白名单。
  • Web 重写:通过 .htaccess 将前台、后台、API 请求重写到对应入口。

架构总览

下图展示了请求从 Web 服务器进入后,经重写规则到达入口,再由引导脚本完成环境检查、配置加载与模块初始化,最终交由各端控制器处理。

sequenceDiagram
participant Client as "浏览器"
participant Web as "Web 服务器"
participant HT as ".htaccess"
participant Entry as "入口(index/admin/api)"
participant Boot as "引导(core/bootstrap.php)"
participant Conf as "配置(config/config.php)"
participant FS as "存储(storage/)"
Client->>Web : HTTP 请求
Web->>HT : 匹配重写规则
HT-->>Entry : 转发到对应入口
Entry->>Boot : 执行引导
Boot->>Boot : 检查 PHP 版本
Boot->>Conf : 读取数据库与站点常量
Boot->>FS : 检测安装锁与状态文件
Boot-->>Entry : 返回已就绪的应用上下文
Entry-->>Client : 响应页面/数据

图示来源

  • .htaccess:10-45
  • core/bootstrap.php:19-65
  • config/config.php:15-31

详细组件分析

PHP 版本要求

  • 最低版本:PHP 5.6.0(低于该版本会直接终止并提示升级)。
  • 建议:在生产环境使用受支持的稳定分支以获得安全更新。

MySQL 版本要求

  • 本项目在引导阶段加载数据库配置,未内置版本检测逻辑。
  • 建议:使用主流稳定版本(例如 5.6+),并确保字符集与排序规则与站点一致。

Web 服务器与 URL 重写

  • Apache:启用 mod_rewrite,遵循根目录 .htaccess 的重写规则,将前台、后台、API 请求分别转发至对应入口。
  • Nginx:需实现等价重写规则,将 /api/、/admin/、/ 转发到各自入口脚本。
  • 安全:对敏感后缀(如 .bak/.inc/.tpl 等)拒绝访问。

文件系统与上传限制

  • 存储根:storage/ 用于运行时状态与缓存等。
  • 上传根:images/upload/ 作为默认本地磁盘根。
  • 上传限制:默认单文件上限 2048 KB,允许的图片扩展名为 jpg/jpeg/gif/png/webp/ico(默认不含 svg)。
  • 权限建议:Web 进程用户对 storage/ 与 images/upload/ 具备读写权限。

数据库连接与字符集

  • 数据库主机、库名、用户名、密码、表前缀与字符集在配置文件中集中管理。
  • 字符集设置为 utf-8,确保前后端与数据库编码一致。

安装流程与锁定机制

  • 若 storage/install.lock 不存在,非安装路径的请求将被重定向到安装程序。
  • 安装完成后生成锁定文件,后续请求直接进入应用。

依赖分析

  • PHP:必须满足最低版本要求。
  • Web 服务器:需要支持 URL 重写(Apache mod_rewrite 或 Nginx rewrite)。
  • 数据库:MySQL(版本建议 5.6+),可通过配置调整连接参数。
  • 文件系统:可写的 storage/ 与 images/upload/ 目录。
graph LR
P["PHP >= 5.6.0"] --> App["DouPHP 应用"]
W["Web 服务器<br/>Apache/Nginx"] --> App
DB["MySQL 5.6+"] --> App
FS["可写 storage/ 与 images/upload/"] --> App

图示来源

  • core/bootstrap.php:19-22
  • .htaccess:10-45
  • config/config.php:15-31
  • config/file.php:43-60

性能考虑

  • 建议开启 OPcache 以提升 PHP 执行效率。
  • 合理设置 Web 服务器的并发与超时参数,避免大文件上传阻塞。
  • 根据业务规模调整数据库连接池与查询优化。
  • 图片上传默认质量与缩略图策略可按需调整,减少带宽占用。

故障排查指南

  • PHP 版本过低:引导阶段会直接终止并提示升级至 5.6.0 或更高版本。
  • 无法访问后台/API:检查 .htaccess 是否生效,确认重写规则与入口路径是否正确。
  • 上传失败:确认 storage/ 与 images/upload/ 目录可写,且文件大小未超过默认限制。
  • 安装被重定向:检查 storage/install.lock 是否存在,确认已完成安装流程。

结论

DouPHP 的运行依赖明确:PHP 5.6+、支持 URL 重写的 Web 服务器、可写的 storage 与上传目录、以及可用的 MySQL 数据库。通过 .htaccess 的统一重写与引导阶段的版本检测,可在多种环境下快速部署。生产环境建议结合安全加固与性能调优策略,确保稳定运行。

附录

环境自检清单

  • PHP 版本:≥ 5.6.0(由引导脚本强制校验)。
  • Web 服务器:已启用 URL 重写,能正确转发 /、/admin、/api。
  • 数据库:可连接,字符集 utf-8。
  • 文件系统:storage/ 与 images/upload/ 可写。
  • 安装状态:storage/install.lock 存在表示已安装。

不同部署环境的配置要点

  • 本地开发:
    • 启用调试模式便于定位问题。
    • 确保重写规则可用,必要时临时关闭以排查路由问题。
  • 生产环境:
    • 关闭调试输出,严格限制上传类型与大小。
    • 仅开放必要端口,启用 HTTPS。
  • 云服务:
    • 将 storage/ 与 images/upload/ 挂载到持久化存储。
    • 使用对象存储替代本地磁盘时,需按扩展点替换默认磁盘驱动。
添加日期:2026-10-05