Lsky Pro兰空图床迁移
编辑开源免费的兰空图床搭建好了,可往往免费的既是最贵的。如果你搭建在云服务器,2核/2G/3M/40G阿里云服务器常年价¥99,40G的图床混合存储大小不一的图片4W张以上,那感觉也足够了。算了,将来有天你打算迁移到本地,那该如何操作呢?
低分辨率图片:如果图片是低分辨率的(比如 640x480),并且经过压缩,每张图片可能只需要几十KB到几百KB。这样算下来,40GB可以存储大约 100,000 到 1,000,000 张图片。
中等分辨率图片:如果是中等分辨率的图片(比如 1920x1080),每张图片可能需要 1MB 到 5MB。这样算下来,40GB可以存储大约 8,000 到 40,000 张图片。
举个例子:我现在要将本地的Lsky Pro迁移到阿里云
我是用docker镜像安装Lsky Pro,根据迁移官方的升级教程(迁移也是同理。)
升级 | Lsky Pro :https://docs.lsky.pro/docs/free/v2/quick-start/upgrade.html#%E5%9C%A8%E7%BA%BF%E5%8D%87%E7%BA%A7
手动升级
如果在线升级失败,可以尝试手动升级。首先你需要前往 https://github.com/lsky-org/lsky-pro/releasesopen in new window 找到最新的版本,下载完整的安装包。(如果你不是开发人员,请不要下载名为 Source code
的压缩包,此为未安装依赖的源码包)
然后按照以下步骤进行升级:
备份
storage
和public
目录下的缩略图文件夹(默认该文件夹名称为thumbnails
)删除 除了 目录
.env
文件和installed.lock
文件以外的所有文件夹以及文件解压新版本到程序根目录(替换掉旧版本)
将备份的
storage
文件夹替换掉已解压的storage
文件夹,将备份的缩略图文件夹放到public
目录下修改版本号,进入数据库找到
configs
表,修改name
为app_version
的value
值,例如V 2.0
,字符串必须完全一致。进入程序根目录执行依次执行以下命令(需要PHP 8+)
php artisan migrate --seed
php artisan optimize:clear
本地储存以及使用 sqlite 需要注意的事情
使用 sqlite 默认情况下会将数据库文件放置
database
文件夹下,请在升级之前备份该数据库文件,并在上述第三步操作以后将数据库文件放置原位。本地储存策略的所有上传的图片都会保存在
storage
文件夹下,数据无价,请注意备份该文件夹。本地储存策略会在
public
文件夹下生成符号连接(软连接),删除public
目录后,请在升级完成以后编辑本地储存策略,保存一下以重新生成符号连接。
迁移 | Lsky Pro :https://docs.lsky.pro/docs/enterprise/v1/quick-start/migration.html#_1-%E6%89%93%E5%8C%85
1. 打包
一般情况下,程序的 public
目录中会存在多个个系统保留目录名,目录结构如下:
└─ public
├─ css 系统层叠式样式表
├─ fonts 系统字体文件
├─ i 程序默认本地储存的符号链接(可能不存在)
├─ img 系统图片文件
├─ js 系统 javascript 文件
├─ thumbnails 程序图片缩略图的符号链接
├─ uploads 系统图片上传的符号链接(例如相册封面、背景图等)
└─ ...
符号链接映射关系:
public/thumbnails
-> storage/app/thumbnails
public/uploads
-> storage/app/public
public/i
-> storage/app/uploads
迁移前,我们先将 public
中的 thumbnails
、uploads
、i
等所有符号链接删除。然后备份数据库,打包程序目录。
为什么要删除符号链接?
如果不删除符号链接,打包压缩程序目录时,会将符号链接所指向的文件也打包进去,导致迁移后符号链接失效,无法找到对应的文件。
注意
打包时请注意程序中 . 符号开头的文件,这些可能在某些文件管理程序中被隐藏,请不要忽略了这些文件。
3. 迁移到新服务器
将打包后的代码和数据库文件,上传到新服务器站点目录解压,并导入数据库。
打开根目录 .env
文件,修改数据库连接信息:
APP_DEBUG=true 开启调试模式
DB_CONNECTION=mysql 数据库类型
DB_HOST=127.0.0.1 数据库连接地址
DB_PORT=3306 数据库连接端口
DB_DATABASE=lsky_pro 数据库名称
DB_USERNAME=root 数据库用户名
DB_PASSWORD=root 数据库密码
REDIS_HOST=127.0.0.1 Redis 连接地址,一般默认就好
REDIS_PASSWORD=null Redis 连接密码,一般默认就好
REDIS_PORT=6379 Redis 连接端口,一般默认就好
将以上配置修改为你的环境对应配置值,然后配置站点伪静态、运行目录、设置站点文件权限。具体操作可参考安装章节第二步-准备运行环境
#4. 生成符号链接
进入 SSH 终端,进入站点目录,然后执行重新生成符号链接命令:
php artisan lsky:symlinks
注意
如果你使用了本地的储存策略,需要进入后台编辑该策略,重新保存一下以生成对应储存的符号连接。
实际操作
备份
storage
和public
目录下的缩略图文件夹(默认该文件夹名称为thumbnails
)删除 除了 目录
.env
文件和installed.lock
文件以外的所有文件夹以及文件备份数据库
迁移前,我们先将
public
中的thumbnails
、uploads
、i
等所有符号链接删除。(我决定在上传还原目录的时候删除)安装Lsky pro镜像,然后将其停止。
还原
storage
和public
目录,并将public
中的thumbnails
、uploads
、i
等所有符号链接删除。还原数据库
启动镜像
IP+端口号,进入Lsky Pro首页。