以前分享过使用 Chevereto 搭建个人图床,也用了很长一段时间,整体很不错,但基本上是个人偶尔在论坛贴图的时候使用,基于成本考虑,前段时间把存储服务器换到了一台 512M 内存的 VPS 上,虽然优化下 MySQL 的配置文件也能很好的运行,但本着节省资源的目的,还是想找一个占用资源更少的图床程序。

lsky-pro

兰空图床(Lsky Pro)早有耳闻,一直都想试一试,刚好上个月(2022 年 3 月)也发布了全新的 2.0 版本。这次便部署了一下,过程简单方便,而且支持 SQLite,占用资源很少,完美满足我的需求。

特性:

  • 支持本地等多种第三方云储存 AWS S3、阿里云 OSS、腾讯云 COS、七牛云、又拍云、SFTP、FTP、WebDav、Minio
  • 多种数据库驱动支持,MySQL 5.7+、PostgreSQL 9.6+、SQLite 3.8.8+、SQL Server 2017+
  • 支持配置使用多种缓存驱动,Memcached、Redis、DynamoDB、等其他关系型数据库,默认以文件的方式缓存
  • 多图上传、拖拽上传、粘贴上传、动态设置策略上传、复制、一键复制链接
  • 强大的图片管理功能,瀑布流展示,支持鼠标右键、单选多选、重命名等操作
  • 自由度极高的角色组配置,可以为每个组配置多个储存策略,同时储存策略可以配置多个角色组
  • 可针对角色组设置上传文件、文件夹路径命名规则、上传频率限制、图片审核等功能
  • 支持图片水印、文字水印、水印平铺、设置水印位置、X/y 轴偏移量设置、旋转角度等
  • 支持通过接口上传、管理图片、管理相册
  • 支持在线增量更新、跨版本更新
  • 图片广场

你可以在官方文档中了解到更多信息。

环境准备

PHP:

  • PHP >= 8.0.2
  • BCMath PHP 扩展
  • Ctype PHP 扩展
  • DOM PHP 拓展
  • Fileinfo PHP 扩展
  • JSON PHP 扩展
  • Mbstring PHP 扩展
  • OpenSSL PHP 扩展
  • PDO PHP 扩展
  • Tokenizer PHP 扩展
  • XML PHP 扩展
  • Imagick 拓展
  • exec、shell_exec 函数
  • readlink、symlink 函数
  • putenv、getenv 函数

支持的数据库:

  • Mysql 5.7+
  • PostgreSQL 9.6+
  • SQLite 3.8.8+
  • SQL Server 2017+

Lsky Pro 要求 PHP 至少高于 8.0.2 版本,而 PHP 的安装在我前面的文章 安装并配置LNMP的记录 中有详细介绍,这里就不再赘述,直接给出在 Debian 11 中使用 root 用户安装 PHP8.1 代码:

curl -sSL https://packages.sury.org/php/README.txt | bash -x
apt install -y php8.1 php8.1-cli php8.1-common php8.1-fpm php8.1-xml php8.1-curl php8.1-mysql php8.1-sqlite3 php8.1-mbstring php8.1-gd php8.1-fileinfo php8.1-exif php8.1-bcmath php8.1-imagick

配置 PHP 修改上传的最大文件参数:

vim /etc/php/8.1/fpm/php.ini

一般来说,需要修改下面三个配置:

  • 最大的文件上传,单个文件上传的最大大小:upload_max_filesize = 5M,比如我这里设置的 5M
  • 最大的执行大小,POST 队列(本次所有文件)最大大小:post_max_size = 50M,结合上面意味着本次最多同时上传 10 个文件
  • 最大的执行时间,默认的最大执行时间为 30 秒,也就是说如果上传超过 30 秒,该队列就会停止:max_execution_time = 300,表示最长执行 5 分钟

数据库这里由于我的数据量很小,对性能要求不高,选择使用 SQLite,不需要进行额外的配置。

安装 Lsky Pro

1. 下载源码:

release 页面找到最新的版本下载到服务器合适的目录下(这里以 /home/www/lsky 路径举例),例如我写文章时为 2.0.3 版本:

wget https://github.com/lsky-org/lsky-pro/releases/download/2.0.3/lsky-pro-2.0.3.zip

2. 解压后修改文件权限:

unzip -d /home/www/lsky/ lsky-pro-2.0.3.zip
chmod -R 755 /home/www/lsky
chown -R www:www /home/www/lsky

3. 设置 nginx 伪静态:

location / {
  try_files $uri $uri/ /index.php?$query_string;
}

配置好域名以后,访问站点首页,程序会自动跳转至安装页面,环境检测通过以后即可通过引导进行安装。

install-lsky-pro-1

安装程序会自动检测环境,如果不通过,根据提示进行补充修改,没问题的话点击下一步设置数据库。

install-lsky-pro-2

这里我直接选择了 SQLite,设置好管理员账号和密码点击下一步就完成安装了。

install-lsky-pro-3

安装完成之后回到首页,就可以上传图片测试了,默认支持新用户注册和游客上传,你可以根据自己的需要进入仪表盘进行个性化设置。