配置说明
本文档详细介绍逍遥图库系统的各项配置选项。
配置方式
系统支持两种配置方式:
| 方式 | 说明 | 适用场景 |
|---|---|---|
| 环境配置 (.env) | 文件配置,需要重启生效 | 数据库、缓存等基础配置 |
| 系统设置 (数据库) | 在线配置,实时生效 | 站点信息、上传限制、安全设置等 |
推荐
v1.1.0 版本新增了数据库驱动的系统设置功能,大部分配置可以在管理后台直接修改,无需编辑配置文件。
系统设置(数据库配置)
访问管理后台 → 系统设置,可以在线修改以下配置:
配置分组
| 分组 | 说明 | 配置项数量 |
|---|---|---|
| system | 系统设置 | 7项(站点名称、版本、SEO、Logo等) |
| upload | 上传设置 | 7项(文件大小、扩展名、缩略图等) |
| security | 安全设置 | 11项(限流、CSRF、XSS、Cookie等) |
| performance | 性能设置 | 4项(APM、缓存等) |
| feature | 功能开关 | 4项(注册、评论、审核、水印) |
使用辅助函数
在代码中读取系统设置:
// 获取单个配置
$siteName = settings('site_name', '默认值');
// 获取上传限制
$maxSize = settings('upload_max_size', 10);
// 获取安全设置
$rateLimitEnabled = settings('rate_limit_enabled', false);
配置缓存
系统设置使用 Redis 缓存,修改后需要清除缓存:
# 通过 API 清除
DELETE /api/admin/settings/cache
# 或在管理后台点击"清除缓存"按钮
环境配置 (.env)
.env 文件位于项目根目录,包含系统的核心配置。
应用配置
# 调试模式(生产环境务必设为 false)
APP_DEBUG = false
# 时区设置
DEFAULT_TIMEZONE = Asia/Shanghai
警告
生产环境必须将 APP_DEBUG 设置为 false,否则会暴露敏感信息!
数据库配置
# 数据库类型
DB_TYPE = mysql
# 数据库服务器地址
DB_HOST = 127.0.0.1
# 数据库名称
DB_NAME = photo_gallery
# 数据库用户名
DB_USER = root
# 数据库密码
DB_PASS = your_password
# 数据库端口
DB_PORT = 3306
# 数据库字符集
DB_CHARSET = utf8mb4
# 数据表前缀(默认为空)
DB_PREFIX =
内置服务器配置
# 服务器监听地址
SERVER_HOST = 0.0.0.0
# 服务器端口
SERVER_PORT = 8080
# 文档根目录
SERVER_ROOT = .
上传配置
基本设置
编辑 config/upload.php:
return [
// 最大上传大小(MB)
'max_size' => 10,
// 允许的文件扩展名
'allowed_ext' => ['jpg', 'jpeg', 'png', 'gif', 'webp'],
// 存储类型:local / oss / cos
'storage_type' => 'local',
// 本地存储路径
'local_path' => 'storage/photos',
// 缩略图配置
'thumb' => [
'width' => 300,
'height' => 300,
'quality' => 80,
],
];
云存储配置
阿里云 OSS
'oss' => [
'access_key_id' => 'your_access_key_id',
'access_key_secret' => 'your_access_key_secret',
'bucket' => 'your_bucket',
'endpoint' => 'oss-cn-hangzhou.aliyuncs.com',
'domain' => 'https://your-bucket.oss-cn-hangzhou.aliyuncs.com',
],
腾讯云 COS
'cos' => [
'secret_id' => 'your_secret_id',
'secret_key' => 'your_secret_key',
'bucket' => 'your_bucket',
'region' => 'ap-guangzhou',
'domain' => 'https://your-bucket.cos.ap-guangzhou.myqcloud.com',
],
缓存配置
Redis 缓存
编辑 config/cache.php:
return [
'default' => 'redis',
'stores' => [
'redis' => [
'type' => 'redis',
'host' => '127.0.0.1',
'port' => 6379,
'password' => '',
'select' => 0,
'timeout' => 0,
'expire' => 0,
'prefix' => 'zeaya_',
],
],
];
文件缓存
如果不使用 Redis,可以使用文件缓存:
return [
'default' => 'file',
'stores' => [
'file' => [
'type' => 'file',
'path' => runtime_path('cache'),
'expire' => 0,
'prefix' => '',
],
],
];
队列配置
队列用于异步处理耗时任务(如缩略图生成)。
编辑 config/queue.php:
return [
'default' => 'redis',
'connections' => [
'redis' => [
'type' => 'redis',
'queue' => 'default',
'host' => '127.0.0.1',
'port' => 6379,
'password' => '',
'select' => 0,
'timeout' => 0,
],
// 如果不使用 Redis,可以用同步模式
'sync' => [
'type' => 'sync',
],
],
];
启动队列监听:
php think queue:listen
安全配置
CSRF 防护
编辑 config/middleware.php:
return [
// 全局中间件
'global' => [
\think\middleware\SessionInit::class,
\app\middleware\Csrf::class, // CSRF 防护
],
];
访问频率限制
编辑 config/rate_limit.php:
return [
// 每分钟最大请求数
'max_requests' => 60,
// 时间窗口(秒)
'time_window' => 60,
// 白名单 IP
'whitelist' => [
'127.0.0.1',
],
];
水印配置
编辑 config/watermark.php:
return [
// 是否启用水印
'enabled' => true,
// 水印类型:text / image
'type' => 'text',
// 文字水印配置
'text' => [
'content' => '© 逍遥图库',
'font' => 'static/fonts/msyh.ttf',
'size' => 20,
'color' => '#ffffff',
'opacity' => 50,
],
// 图片水印配置
'image' => [
'path' => 'static/img/watermark.png',
'opacity' => 50,
],
// 水印位置:1-9(九宫格)
'position' => 9, // 右下角
];
邮件配置
编辑 config/mail.php:
return [
'driver' => 'smtp',
'host' => 'smtp.qq.com',
'port' => 465,
'username' => 'your_email@qq.com',
'password' => 'your_password',
'encryption' => 'ssl',
'from' => [
'address' => 'your_email@qq.com',
'name' => '逍遥图库',
],
];
日志配置
编辑 config/log.php:
return [
'default' => 'file',
'channels' => [
'file' => [
'type' => 'file',
'path' => runtime_path('log'),
'level' => ['error', 'warning'], // 生产环境只记录错误
'max_files' => 30,
],
],
];
PWA 配置
编辑 static/manifest.json:
{
"name": "逍遥图库",
"short_name": "图库",
"description": "现代化图库管理系统",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#1890ff",
"icons": [
{
"src": "/static/img/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/static/img/icons/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}
配置优先级
系统配置的优先级从高到低:
- 环境变量 -
.env文件 - 运行时配置 - 代码中的动态配置
- 配置文件 -
config/目录下的文件 - 默认值 - 框架默认配置
配置缓存
生产环境建议缓存配置以提升性能:
# 生成配置缓存
php think optimize:config
# 清除配置缓存
php think clear --config
