4.1 KiB
4.1 KiB
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 托管) :::