逍遥图库系统逍遥图库系统
首页
  • 快速开始

    • 项目介绍
    • 安装指南
    • 快速开始
  • 深入了解

    • 配置说明
    • 部署指南
    • 安全配置
  • 用户系统
  • 图片管理
  • 相册管理
  • 互动功能
  • 管理后台
  • PWA 渐进式应用
  • API 概述
  • 认证接口
  • 图片接口
  • 相册接口
  • 用户接口
  • 管理接口
  • 主题系统
  • 性能优化
  • 常见问题
  • 更新日志
Gitee
首页
  • 快速开始

    • 项目介绍
    • 安装指南
    • 快速开始
  • 深入了解

    • 配置说明
    • 部署指南
    • 安全配置
  • 用户系统
  • 图片管理
  • 相册管理
  • 互动功能
  • 管理后台
  • PWA 渐进式应用
  • API 概述
  • 认证接口
  • 图片接口
  • 相册接口
  • 用户接口
  • 管理接口
  • 主题系统
  • 性能优化
  • 常见问题
  • 更新日志
Gitee
  • 入门指南

    • 项目介绍
    • 安装指南
    • 快速开始
  • 进阶配置

    • 配置说明
    • 部署指南
    • 安全配置

配置说明

本文档详细介绍逍遥图库系统的各项配置选项。

配置方式

系统支持两种配置方式:

方式说明适用场景
环境配置 (.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"
        }
    ]
}

配置优先级

系统配置的优先级从高到低:

  1. 环境变量 - .env 文件
  2. 运行时配置 - 代码中的动态配置
  3. 配置文件 - config/ 目录下的文件
  4. 默认值 - 框架默认配置

配置缓存

生产环境建议缓存配置以提升性能:

# 生成配置缓存
php think optimize:config

# 清除配置缓存
php think clear --config

下一步

  • 部署指南 - 部署到生产环境
  • 安全配置 - 安全相关配置
在 Gitee 上编辑此页
Next
部署指南