兰空图床版本有多个,分为开源版V1、V2;付费版以及付费破解版。本教程分为docker部署及宝塔面板部署两种类型。
一、docker-compose部署
# Docker Compose 配置文件版本,使用 3.8 以保证兼容性
version: '3.8'
# 定义所有服务(容器)
services:
# 1. MySQL 数据库服务(用于存储图床元数据)
mysql:
# 使用官方 MySQL 8.0 镜像(稳定且性能良好)
image: mysql:8.0
# 容器名称,便于在 Docker 网络中识别
container_name: lsky-pro-mysql
# 环境变量:MySQL 初始化配置(首次启动时生效)
environment:
# root 用户密码(必填,生产环境请务必修改为强密码!)
- MYSQL_ROOT_PASSWORD=你的密码
# 自动创建的数据库名称(兰空图床将使用此库)
- MYSQL_DATABASE=lsky
# 创建的非 root 用户名(用于程序连接,提升安全性)
- MYSQL_USER=lsky
# 该用户的密码(请务必修改为强密码,与 DB_PASSWORD 保持一致)
- MYSQL_PASSWORD=你的密码
# 数据卷挂载:将数据库文件持久化到命名卷 mysql-data
# 即使容器删除,数据也不会丢失
volumes:
- 你的mysql目录:/var/lib/mysql
# 重启策略:除非手动停止,否则总是自动重启
restart: unless-stopped
# 启动命令附加参数,优化 MySQL 配置
command:
# 使用原生密码插件(兼容 PHP 7.4+ 的认证方式)
- --default-authentication-plugin=mysql_native_password
# 设置字符集为 UTF-8 MB4(支持 emoji 等 4 字节字符)
- --character-set-server=utf8mb4
# 设置排序规则为 Unicode 不区分大小写
- --collation-server=utf8mb4_unicode_ci
# ==============================================
# 2. Redis 缓存服务(提升访问速度,推荐启用)
# ==============================================
redis:
# 使用轻量级的 Redis 7 Alpine 镜像(体积小,性能好)
image: redis:7-alpine
# 容器名称
container_name: lsky-pro-redis
# 启动命令:开启 AOF 持久化并设置密码(生产环境请修改密码)
command: redis-server --appendonly yes --requirepass "你的密码"
# 数据卷:将 Redis 持久化文件保存到 redis-data 卷
volumes:
- 你的data目录:/data
# 重启策略
restart: unless-stopped
# ==============================================
# 3. 兰空图床主程序(基于 PHP + Nginx)
# ==============================================
lsky-pro:
# 社区维护的兰空图床 Docker 镜像(基于 0xxb 的构建)
# 注:兰空官方暂未推出官方镜像,此镜像为社区活跃维护版本
image: 0xxb/lsky-pro:latest
# 容器名称
container_name: lsky-pro
# 依赖关系:等待 mysql 和 redis 容器启动后再启动本服务
depends_on:
- mysql
- redis
# 端口映射:宿主机你的端口 → 容器内 8000 端口
# 访问图床使用 http://服务器IP:你的端口
ports:
- "你的端口:8000"
# 数据卷挂载:将程序内的特定目录持久化到命名卷
volumes:
# 存储上传的图片文件(重要数据,务必保留)
- 你的storage目录:/app/storage/app
# 主题文件目录(如果您自定义主题,可保留)
- 你的themes目录:/app/themes
# 环境变量:覆盖 .env 中的配置,使程序连接数据库和 Redis
environment:
# 数据库连接类型(mysql)
- DB_CONNECTION=mysql
# 数据库主机名(使用容器名称,Docker 内部 DNS 可解析)
- DB_HOST=mysql
- DB_PORT=3306
# 数据库名称、用户名、密码(必须与 MySQL 中设置的一致)
- DB_DATABASE=lsky
- DB_USERNAME=lsky
- DB_PASSWORD=你的密码
# Redis 缓存配置
- REDIS_HOST=redis
- REDIS_PASSWORD=你的密码
- REDIS_PORT=6379
# 重启策略
restart: unless-stopped
# ==============================================
# 定义命名卷(由 Docker 管理,位置在 /var/lib/docker/volumes/)
# ==============================================
volumes:
# MySQL 数据卷
mysql-data:
driver: local
# Redis 数据卷
redis-data:
driver: local
# 图片存储卷(存放所有用户上传的图片)
storage:
driver: local
# 主题文件卷(可存放自定义主题)
themes:
driver: local
将代码中“你的xx目录、端口、密码”部分替换为你自己的设置,然后部署即可。
访问图床使用 http://服务器IP:你的端口
二、宝塔面板部署
本教程不包含SSH连接服务器部署宝塔面板教程,请自行学习。
付费版源码及破解版源码请自行寻找,本人只提供部署教程。
1 安装 PHP 版本
要求:PHP 版本 ≥ 8.2(教程使用 PHP 8.2.28)
操作:
宝塔面板 → 软件商店 → 搜索「PHP」
找到「PHP 8.2」点击安装(其他版本如 8.3/8.4 可按需选择,但需满足 ≥8.2 要求)
2 安装必要 PHP 扩展
操作:安装完 PHP 8.2.28 后,点击右侧「设置」→「安装扩展」
核心必装扩展(部分默认已安装,仅需补充缺失项):
SourceGuardian(宝塔面板中名称为 sg16)
Fileinfo(通用扩展,内存<1G 可能安装失败)
Imagick(宝塔面板中名称为 imagemagick)
3 解除 PHP 禁用函数
需删除的禁用函数(避免安装失败)如果这里不去解除函数,运行安装程序的时候会报错。
操作:
宝塔面板 →软件商店→ PHP 8.2.28 → 「设置」→「禁用函数」→点击「删除」解除禁用,保存设置
或者直接到「配置文件」328行左右找到disable_classes =,把后边的函数名称全部删除后保存。
4 创建站点
操作步骤:
宝塔面板 → 网站 → PHP项目 「添加站点」
项目类型:传统项目
域名:输入自己的域名(示例:lsky.xyz)
根目录:默认生成(示例:/www/wwwroot/lsky.xyz)
FTP:不创建
数据库:mysql-账号lsky-密码lsky
PHP 版本:选择「PHP-8.2」
点击「确定」完成创建
5 上传源码
进入站点根目录 点击根目录就可以跳转(示例:/www/wwwroot/lsky.xyz)
点击「上传」,上传源码压缩包.zip
双击压缩包解压源码。
6 配置伪静态,更改网站运行目录,申请ssl证书
1.宝塔面板 → 站点 → 「设置」→「伪静态」
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ ^/livewire {
expires off;
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .*\.(jpg|jpeg|webp|avif|bmp|gif|png|tif|tiff|jp2|j2k|jpf|jpm|jpg2|j2c|jpc|jpx|heic|heif)$ {
try_files $uri $uri/ /index.php?$query_string;
}
2.宝塔面板 → 站点 → 「设置」→「网站目录」→运行目录:选择「/public」,点击「保存」
7 运行安装脚本
进入站点根目录点击终端,然后粘贴代码运行安装脚本,因为我已经安装过,所以终端内没办法截图,请根据文字描述完成安装。
#安装脚本文件instal1.sh,我们给该脚本赋予可执行权限
chmod +x install.sh
#然后执行安装脚本
./install.sh
脚本运行后检测环境依赖应该是全部勾选,如果提示缺少就说明前面为未安装成功,去检查对应的PHP扩展是否安装。
然后回车跟随脚本提示配置
配置项说明:
应用名称:默认「Lsky Pro+ 」,可自定义
应用域名:填写已绑定的域名(示例:https://lsky.xyz,需准确填写,避免后期修改数据库)
授权密钥:官网购买,破解版输入任意授权密钥均可使用(无需联网验证)
数据库:选择mysql,将数据库lsky及密码lsky填入(创建站点时一同创建的)
管理员账号:输入邮箱和密码(后续登录使用)
全部完成后就可以关闭终端了。
然后重新打开终端配置计划任务
1.编辑定时任务:
crontab -e
2.选择编辑器:输入「1」(nano,最简单)
3.粘贴以下代码:这里打开可能默认有其他代码,全部删除 然后粘贴下面的代码既可
* * * * * cd /www/wwwroot/app.com && php artisan schedule:run >> /dev/null 2>&1
4.保存退出:按「Ctrl+X」→ 输入「Y」→ 回车确认
8 配置消息队列(解决图片上传、缩略图生成异常)
安装进程守护工具
操作:宝塔面板 → 软件商店 → 搜索「进程守护」→ 安装
添加守护进程操作步骤:
进程守护 → 「添加守护进程」
配置项:
名称:自定义(英文,示例:lskypro)
启动用户:root
运行目录:站点根目录(示例:/www/wwwroot/lsky.xyz)
启动命令:php artisan queue:work
进程数量:1(默认即可)
点击「确定」,启动进程
Comments NOTHING