配置说明
配置文件位于项目根目录 .env 文件。
配置文件
youlai-think/
├── .env # 环境配置
├── config/ # 配置目录
│ ├── database.php # 数据库配置
│ ├── security.php # 安全配置
│ └── ...
└── .env.example # 配置示例数据库配置
dotenv
# MySQL 数据库
DB_TYPE = mysql
DB_HOST = 127.0.0.1
DB_PORT = 3306
DB_NAME = youlai_admin
DB_USER = root
DB_PASS = 123456
DB_CHARSET = utf8mb4| 配置项 | 默认值 | 说明 |
|---|---|---|
DB_TYPE | mysql | 数据库类型 |
DB_HOST | localhost | MySQL 主机 |
DB_PORT | 3306 | MySQL 端口 |
DB_NAME | youlai_admin | 数据库名称 |
DB_USER | root | 数据库用户名 |
DB_PASS | - | 数据库密码 |
DB_CHARSET | utf8mb4 | 字符集 |
Redis 配置
dotenv
# Redis 配置
REDIS_HOST = 127.0.0.1
REDIS_PORT = 6379
REDIS_PASSWORD =
REDIS_DB = 0
REDIS_PREFIX =| 配置项 | 默认值 | 说明 |
|---|---|---|
REDIS_HOST | localhost | Redis 主机 |
REDIS_PORT | 6379 | Redis 端口 |
REDIS_PASSWORD | - | Redis 密码 |
REDIS_DB | 0 | 数据库编号 |
REDIS_PREFIX | - | Key 前缀 |
安全配置
dotenv
# 会话模式:jwt | redis-token
SECURITY_SESSION_MODE = jwt
# JWT 配置
JWT_SECRET = change-me
JWT_ISSUER = youlai-think
JWT_ACCESS_TTL = 7200
JWT_REFRESH_TTL = 604800| 配置项 | 默认值 | 说明 |
|---|---|---|
SECURITY_SESSION_MODE | jwt | 会话模式 |
JWT_SECRET | - | JWT 签名密钥 |
JWT_ISSUER | youlai-think | Token 签发方 |
JWT_ACCESS_TTL | 7200 | 访问 Token 有效期(秒) |
JWT_REFRESH_TTL | 604800 | 刷新 Token 有效期(秒) |
会话模式
| 模式 | 说明 | 适用场景 |
|---|---|---|
jwt | 无状态,Token 自包含信息 | 微服务、分布式 |
redis-token | 有状态,Token 存储在 Redis | 需要会话治理 |
应用配置
dotenv
# 应用调试模式
APP_DEBUG = true
# 默认语言
DEFAULT_LANG = zh-cn| 配置项 | 默认值 | 说明 |
|---|---|---|
APP_DEBUG | false | 调试模式 |
DEFAULT_LANG | zh-cn | 默认语言 |
配置读取
在代码中读取
php
// 读取环境变量
$host = env('DB_HOST', 'localhost');
$port = env('DB_PORT', 3306);
// 读取配置文件
$dbConfig = config('database');
$redisConfig = config('security.redis');配置文件示例
php
// config/security.php
return [
'session_mode' => env('SECURITY_SESSION_MODE', 'jwt'),
'jwt' => [
'secret' => env('JWT_SECRET', 'default-secret'),
'issuer' => env('JWT_ISSUER', 'youlai-think'),
'access_ttl' => (int) env('JWT_ACCESS_TTL', 7200),
'refresh_ttl' => (int) env('JWT_REFRESH_TTL', 604800),
],
'redis' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'port' => (int) env('REDIS_PORT', 6379),
'password' => env('REDIS_PASSWORD', ''),
'database' => (int) env('REDIS_DB', 0),
],
];环境差异
开发环境
dotenv
APP_DEBUG = true
DB_HOST = www.youlai.tech
REDIS_HOST = www.youlai.tech生产环境
dotenv
APP_DEBUG = false
DB_HOST = your-production-db
REDIS_HOST = your-production-redis
JWT_SECRET = your-production-secret相关文件
| 文件 | 说明 |
|---|---|
.env | 环境配置 |
config/database.php | 数据库配置 |
config/security.php | 安全配置 |
config/cache.php | 缓存配置 |
