Files
rxthinkcmf-wiki/RXThinkCMF_Laravel13_NaiveVue/zh/deploy/env-plan.md
T
2026-10-08 17:50:29 +08:00

4.1 KiB
Raw Blame History

11.2 环境规划

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

推荐配置

组件 版本 说明
PHP 8.3+ 必需(Laravel 13 要求)
Laravel 13.x 后端框架
MySQL 8.0+ 主数据库(也支持 PostgreSQL、SQL Server、Oracle、SQLite)
Redis 6.0+ 缓存 / 会话 / 队列 / JWT 会话存储(必需,phpredis 扩展)
Nginx 1.18+ Web 服务器
Node.js 18+(建议 22 LTS) 前端构建(ui/ 为 Vite 3;根目录资源构建为 Vite 7)
Composer 2.x PHP 依赖
pnpm 9+ 前端依赖(ui/ 目录,含 pnpm-lock.yaml)

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

服务器配置建议

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

部署架构

小型项目(单机)

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

中型项目(单机优化)

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

大型项目(分离部署)

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

环境变量规划

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

环境 APP_DEBUG APP_ENV CACHE_STORE / SESSION_DRIVER JWT_SECRET CORS_ALLOW_ORIGIN
开发 true local redis 开发密钥 *
测试 true testing redis 测试密钥 *
生产 false production redis 强随机密钥(≥32 字符) 指定域名

生成强随机 JWT 密钥:

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

:::tip 其它生产必检项

  • DB_PREFIX=laravel_ 与 SQL 脚本表前缀一致,不要随意修改
  • FILE_DOMAIN_URL 留空时按当前请求域名补全文件地址;跨域部署时应配置为前端可访问的文件域名
  • TRUSTED_PROXIES 按反向代理层级配置(默认信任 127.0.0.1 / ::1)
  • 队列常驻进程:php artisan queue:work(生产用 Supervisor 托管) :::