import{_ as a,o as s,c as n,a2 as e}from"./chunks/framework.BbmSSMjL.js";const u=JSON.parse('{"title":"11.2 环境规划","description":"","frontmatter":{},"headers":[],"relativePath":"zh/deploy/env-plan.md","filePath":"zh/deploy/env-plan.md"}'),d={name:"zh/deploy/env-plan.md"};function p(i,t,l,o,r,c){return s(),n("div",null,[...t[0]||(t[0]=[e(`

11.2 环境规划 ​

概述

本节提供不同规模项目的服务器配置建议和环境规划方案。

推荐配置 ​

组件版本说明
PHP8.3+必需(Laravel 13 要求)
Laravel13.x后端框架
MySQL8.0+主数据库(也支持 PostgreSQL、SQL Server、Oracle、SQLite)
Redis6.0+缓存 / 会话 / 队列 / JWT 会话存储(必需,phpredis 扩展)
Nginx1.18+Web 服务器
Node.js18+(建议 22 LTS)前端构建(ui/ 为 Vite 3;根目录资源构建为 Vite 7)
Composer2.xPHP 依赖
pnpm9+前端依赖(ui/ 目录,含 pnpm-lock.yaml)

Redis 为强依赖

本项目 .env.example 默认 SESSION_DRIVER=redis、CACHE_STORE=redis、QUEUE_CONNECTION=redis、REDIS_CLIENT=phpredis,JWT 双令牌也依赖 Redis。生产环境必须部署 Redis,否则无法登录、无法缓存、队列不可用。

服务器配置建议 ​

规模CPU内存磁盘说明
小型2核4GB50GB单机部署,日活 < 1000(数据库初始化导入约 226MB,建议 ≥4GB)
中型4核8GB100GB单机部署,日活 1000~10000
大型8核+16GB+200GB+分离部署,日活 > 10000

部署架构 ​

小型项目(单机) ​

text
┌─────────────────────────────┐
│         单台服务器           │
│                             │
│  Nginx + PHP-FPM + MySQL    │
│  + Redis(必需)             │
│  + 前端静态文件              │
└─────────────────────────────┘

中型项目(单机优化) ​

text
┌─────────────────────────────┐
│         单台服务器           │
│                             │
│  Nginx(前端 + API 代理)    │
│  PHP-FPM(多进程)           │
│  MySQL(主库)               │
│  Redis(缓存/队列)          │
│  Supervisor(队列/守护进程)  │
└─────────────────────────────┘

大型项目(分离部署) ​

text
┌──────────┐  ┌──────────┐  ┌──────────┐
│  Nginx   │  │  Nginx   │  │  Nginx   │
│  前端CDN │  │  API-1   │  │  API-2   │
└──────────┘  └──────────┘  └──────────┘
                    │              │
                    └──────┬───────┘
                           │
                    ┌──────┴──────┐
                    ▼             ▼
              ┌──────────┐  ┌──────────┐
              │  MySQL   │  │  Redis   │
              │  主从     │  │  集群    │
              └──────────┘  └──────────┘

环境变量规划 ​

本项目 .env 为扁平键名(无分段式配置),核心项规划如下:

环境APP_DEBUGAPP_ENVCACHE_STORE / SESSION_DRIVERJWT_SECRETCORS_ALLOW_ORIGIN
开发truelocalredis开发密钥*
测试truetestingredis测试密钥*
生产falseproductionredis强随机密钥(≥32 字符)指定域名

生成强随机 JWT 密钥:

bash
php -r "echo bin2hex(random_bytes(32));"

其它生产必检项

`,20)])])}const b=a(d,[["render",p]]);export{u as __pageData,b as default};