缘起

虽然断断续续从17年写博客到现在已经有四五年了,但是一直都是用着别人家的图床,诸如sm.ms、如优图床、路过图床等等,大厂图床也用过,微博图床啊、阿里图床,不过用的相对较少,因为大厂的运维比较容易发现这些“漏洞”并及时修补,薅不长久,但是前几天的一件事情让我产生了彻底放弃使用第三方图床的念头。
事情是这样的,两天前我一如既往的打开博客,却惊讶的发现我的网站头图和文章图片全部丢失,我看了下图片链接全部打开失败后,发现本站正在用的第三方图床“鸡霸图床”突然无法访问,打开图床网站后发现nginx告警,既没有本地备份,也没有云端备份的我当时就像是吃了一口奥利给。我几个网站的图片都放在该网站托管,但是突然丢失所有图片也使对我自己长久以来不正确的图片托管方式产生了怀疑,还好这个图床没有跑路,大概4个小时后我再次访问该网站时已经恢复正常,但是更改了访客查看图片的权限,这次图片丢失可能是该图床的一次技术调整导致的。但是此事以后,我对任何第三方免费图床都产生了不信任感,于是我决定,自建图床。

选择程序

说干就干,搭建网站第一件事就是跑到世界上最大的同性交友论坛“Gayhub”上搜索图床源码,但是不搜不知道,一搜吓一跳,Github上竟然有上千种开源的图床程序,这让选择困难症晚期患者的我开始纠结选择哪个好。
Github上琳琅满目的开源图床
于是乎我就上了全球主机论坛看看mjj们用哪些图床程序多,果然不出我所料,用得最多的还是开源图床的第一霸主chevereto。这个图床程序可谓是做站必备,基本上十个自建图床起码八个都在用这个,但是鉴于用的人实在太多,加上以前用过的经验来看,好虽然好,但是不够简洁。在一番寻找之后,我把目光投向兰空图床。这简洁的线条,这低调的配色,这丰富的后台,正应了那句广告词——简约而不简单。
Lsky Pro首页
Lsky Pro后台

Lsky Pro图床

Lsky Pro图床是一个支持本地、阿里云 OSS、腾讯云 COS、七牛云、又拍云等储存方式的基于PHP的开源图床。

项目主页:https://www.lsky.pro

项目仓库地址:https://github.com/wisp-x/lsky-pro

主要特性

  • 支持第三方云储存,本地、阿里云 OSS、腾讯云 COS、七牛云、又拍云、FTP
  • 多图上传、拖拽上传、粘贴上传、上传预览、全屏预览、页面响应式布局
  • 简洁的图片管理功能,支持鼠标右键、单选多选、重命名等操作
  • 全局配置用户初始剩余储存空间、设置指定用户剩余储存空间
  • 一键复制图片外链、二维码扫描链接、图片鉴黄功能
  • 设置上传文件、文件夹路径命名规则、文件夹分类功能
  • 接口上传、图片软删除
  • OTA 平滑升级系统
  • (Dark)暗黑主题
  • IP 封禁功能
  • 自定义链接参数
  • 单用户模式

安装需求

  • PHP 版本 ≥ 5.6(≤ 7.3)
  • mysql 版本 ≥ 5.5
  • PDO 拓展
  • ZipArchive 支持
  • fileinfo 拓展
  • curl 拓展

安装教程

安装宝塔并配置环境

首先就是安装宝塔面板了,安装教程可参考我之前发布的olaindex安装教程


本次教程安装环境为: PHP7.3 Nginx1.18 MySQL5.6
演示安装环境
在宝塔首页找到软件商店,在已安装中找到对应的php版本,并点击设置——安装扩展,找到fileinfo并点击安装。
安装扩展

添加站点

然后在宝塔的网站管理页面新建一个网站,输入域名、数据库选择MYSQL、PHP选择7.3
新建站点

下载图床程序

我们打开站点的根目录,找到远程下载,在URL地址中输入下载地址并点击确定

Github下载(推荐):https://github.com/wisp-x/lsky-pro/releases

如果您的vps位于国内,连接GitHub不理想的话,可以下载本站保存的文件再上传根目录

解压程序

上传完成后,在当前目录解压文件
点击解压
选择解压
打开解压文件夹,全选里面的所有文件,拷贝或剪切到站点根目录
拷贝解压文件到根目录

设置运行目录

程序上传完后我们回到网站——你的站点设置——网站目录,将网站运行目录设置为 /public目录
运行目录设置
为什么要设置运行目录为 /public 呢?

因为默认程序的入口文件在 public 目录下,所以需要把 public 目录设置为网站运行目录,入口文件位置的设计是为了让应用部署更安全,public 目录为web可访问目录,其他的文件都可以放到非WEB访问目录下面。而你如果安装网站时没有设置,使用http://域名/public 的方式来访问站点,会导致 css 和 js 等静态资源无法获取。如果你 无法 或 不会 设置运行目录,可以将 public 目录下的所有文件和文件夹(包括 .htaccess 文件)移动到根目录 (和 application 文件夹同级)即可,尽管我们不推荐你这么做,这样会导致应用程序核心文件暴露在外。

配置 Rewrite 规则

Nginx用户直接点击伪静态,然后输入以下规则然后保存:

location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=$1 last; break;
    }
}

设置伪静态

站点配置

这时候我们在浏览器输入站点地址,就会自动跳转到安装页面
自动安装页面
如果你的环境是按照需求配置的,那么在运行环境检测的时候应该所有都是绿色的,这时候直接下一步就行,如果哪一项没有达到,还请回顾安装教程看看是否哪一步没有执行到位

对接数据库

环境检测完后下一步是填写数据库相关信息,在最开始创建网站时,你设置的数据库名以及密码,就是那东西,将你的数据库名、数据库用户名以及数据库密码输入完后,点击配置数据库即可
填入数据库信息

设置管理员账号

如果你的数据库信息填写正确的话,将跳转到设置管理员账号的这一步,请自行设置管理员邮箱以及用户名和密码,填写完成后即可看到安装成功的提示界面
设置管理员

大功告成

让我们回到浏览器界面,进入后台登录地址,可以直接输入: http://你的域名/auth/login.html 访问,也可以在站点左侧点击登录
进入后台

聚合图床

既然有了简约大气的兰空图床,那为什么还要再装一个Auxpi图床呢?答案很简单,白嫖!让我们进入Lsky Pro后台的储存策略看看,几乎所有的储存策略都是基于vps自身存储空间或者付费的对象存储。那么问题来了,在访问量激增的时候怎么合理的控制图床的成本?
Lsky Pro储存策略
于是乎,我们找到了另一种mjj更为喜欢的图床程序类型——聚合图床,字面意思就是把各种免费的图床API聚合成一个图床,这样既能保证托管平台的多样,又能节省服务器开支,可谓一举两得。那么,聚合图床中的佼佼者就是接下来的主角——Auxpi

Auxpi图床

AUXPI是一个使用 beego + vue + element-ui 进行开发的集合多家 API 的新一代图床。支持异地根节点,包括 github,gitee,imgur,同时还支持使用代理链接去代理一些具有防盗链的图片,鉴黄和 OOS 对接正在开发中。

项目仓库地址:https://github.com/0xDkd/auxpi

功能特色

  • 支持 web 上传图片
  • 支持 API 上传图片
  • 支持分发,控制反转
  • 支持拖拽对首页的菜单进行排序和开关控制
  • 图片链接按照权重进行异步分发
  • 首页支持可视化图表,方便分析
  • 支持自由定制

所需环境

  • Nginx1.18
  • Mysql5.6
  • PHP7.3
  • Redis
  • phpMyAdmin4.4

安装教程

本教程基于宝塔面板,如何安装宝塔面板不赘述了,见上文。

新建站点

我们直接新建一个站点,输入域名、数据库选择MYSQL、PHP选择纯静态,aupxi不需要PHP环境。
新建站点

设置SSL

如果想要为站点开启 ssl,就在宝塔中进行设置即可,如果需要 http 跳转 https,记得开启 强制 HTTPS
设置ssl

设置反向代理

在网站设置中,点击反向代理并添加一个反向代理。端口设置为2333,其他默认即可,具体可参考下图。
设置反代

修改反代配置文件

然后我们需要修改一下代理的部分规则
反代配置文件
只保留下图的内容,其它的全部删除掉即可
修改后的配置文件

修改Nginx配置

接下来我们需要修改一下 Nginx 的配置文件,点击配置文件
首先删除或者禁用#清理缓存规则这一块,下面的代码是没注释之前的:

location ~ /purge(/.*) {
    proxy_cache_purge cache_one $host$1$is_args$args;
    #access_log  /www/wwwlogs/qq.fdao.xyz_purge_cache.log;
}

接着删除或者禁用伪静态规则那一块的代码
nginx配置修改
设置好是下面这个样子的:

#清理缓存规则

#location ~ /purge(/.*) {
#    proxy_cache_purge cache_one $host$1$is_args$args;
#    #access_log  /www/wwwlogs/img.litalk.net_purge_cache.log;
#}
#引用反向代理规则,注释后配置的反向代理将无效
include /www/server/panel/vhost/nginx/proxy/img.litalk.net/*.conf;

# include enable-php-00.conf;
#PHP-INFO-END
    
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
#include /www/server/panel/vhost/rewrite/img.litalk.net.conf;
#REWRITE-END

安装Redis

如果跳过这步直接安装并运行程序,就会出现下面这种报错:
auxpi启动报错
所以,我们直接在软件商店找到redis,安装即可。
安装redis

下载图床程序

利用宝塔终端或者Finalshell连接自己的服务器在命令行界面下载auxpi安装脚本。

cd /www/wwwroot/pic.zhouli.online
wget -N --no-check-certificate https://raw.githubusercontent.com/aimerforreimu/AUXPI/dev/install.sh && chmod +x install.sh

如果您是国内vps那么可以手动下载图床程序,在上传宝塔网站根目录,本站也提供了下载好的文件

Github下载(推荐):https://github.com/0xDkd/auxpi/releases

运行安装命令

执行以下安装命令

chmod -u+x auxpi
./auxpi init

下面是安装成功的截图,如有问题,请检查上述操作
安装成功

修改Auxpi配置文件

进入网站根目录的auxpi/conf/ 找到app.conf 文件进行编辑
修改图床配置
只需要修改数据库信息,即下面所示的部分

#DATABASE Setting
dbType = mysql
dbName = 数据库名
dbUser = 数据库用户名
dbPassword = 数据库密码
dbHost = 127.0.0.1:3306
dbPrefix = auxpi_

创建(迁移)数据库

cd进入你安装auxpi的根目录下 运行命令

./auxpi migrate

运行成功截图
注意:如果您正在使用本程序,并且已经成功连接数据库,请不要随意运行此命令,此命令会重置并生成新的数据表,您原来的数据会丢失。

创建管理员

在程序的根目录运行如下程序

./auxpi -mod=admin -name=admin -email=admin@daniao.org -pass=123123123

执行成功截图
注意:示例代码是新建一个admin 密码为123123123 ,邮箱为admin@daniao.org的账户信息,自己根据需要修改。管理员有且只有一个,并且用户 ID 只能为1。

使用Supervisor对Auxpi进行后台托管

在完成上述操作后,已经可以运行程序了,只需要在根目录执行下述命令即可:

./auxpi run

但是如果退出终端程序,那么程序就会停止运行,图床就不能访问了,所以我们需要用使用 supervisor 对 auxpi 进行后台托管。安装supervisor很简单,在宝塔软件商店就能找到,安装即可。
安装supervisor
安装完成后点击设置——添加守护进程,启动目录是根目录下的auxpi,启动命令是根目录/auxpi/auxpi,具体可参考下图:
守护进程设置
保存后,守护进程启动成功,如图:
成功添加守护进程

安装完成

这时候进入浏览器打开网站,就可以上传图片啦
Auxpi图床首页
不过由于作者已经很久没更新了,导致这个图床年久失修,很多API已经失效了,有用的我都启用了,具体可看下图:
启用的图床

写在最后

图床是一个博客很重要的一部分,把这些图片托管在别家那里总归不是长久之计,最好还是建一个自己可掌控的图床,如果有钱可以上大带宽的机器或者使用对象存储,CDN这种加速服务,没钱的话也可以建一个聚合图床白嫖免费空间,总之希望大家都能拥有属于自己的专属图床,以上。

参考文章

宝塔面板安装Auxpi聚合图床 – 以及使用supervisor对auxpi进行后台托管
笨猪博客-开源图床的推荐和安装
GitHub官方wiki文档-使用宝塔进行安装
最后修改:2025 年 02 月 26 日
如果觉得我的文章对你有用,请随意赞赏