915 字
5 分钟

搭建私有化大容量图床

2024-05-11
浏览量 加载中...

前言#

经常写博客的朋友都知道,最麻烦的就是静态图片的托管问题。免费的图床经常不稳定,利用大厂做图床又可能随时被添加防盗链导致无法访问(如之前的 Gitee)。

本文就教大家如何搭建一个属于自己的大容量空间图床。

项目介绍#

本文采用以下技术方案:

  • 兰空图床作为主程序负责图床上传和返回链接
  • Openlist作为辅助程序为其提供WebDAV服务

PS:如果你已有大容量WebDAV空间,可以忽略Openlist的配置部分。

上述两个程序皆是开源项目:

PS:本文不提供Openlist部署教程,如需部署请自行查看官方文档:https://doc.oplist.org/

环境配置#

按照兰空图床官方文档要求进行环境配置:

PHP 要求:

  • PHP >= 8.0.2
  • PHP 版本建议使用 8.0 版本(实测更高版本安装完毕会报错)

必需的 PHP 扩展:

  • 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 函数
  • chmod、chown、fileperms 函数

安装完成后,请按照上述要求的扩展并解除对应禁用的函数。

创建网站并拉取源码#

1、创建网站#

在宝塔面板中创建网站及对应数据库,文件夹名称可自定义,如 lskypro。

2、拉取源码并安装依赖#

Terminal window
cd /www/wwwroot
git clone https://github.com/lsky-org/lsky-pro.git lskypro
cd lskypro
sudo composer install

3、配置网站#

  • 将网站目录中的运行目录改为 /public
  • 关闭防跨站攻击

4、配置伪静态#

添加以下内容:

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

5、安装程序#

配置完成后,通过之前创建网站的域名访问并开始程序的安装。安装前会检测环境,如果不符合要求会进行提示,按照提示配置环境后刷新页面即可继续安装。

配置WebDAV#

安装完成后,在图床后台进行以下配置:

  1. 进入储存策略选项
  2. 点击新建储存策略
  3. 填写以下信息:
    • 角色组:选择你所在的角色组
    • 名称:任意名称
    • 储存策略:选择 Webdav
    • 访问域名:图片访问域名,建议设置当前域名的二级目录,如 https://yourdomain.com/img
    • URL Queries:不用填写
    • 连接地址:你的 WebDAV 地址(如果Oplist程序部署在同一服务器,填写 http://127.0.0.1:5244)
    • 认证方式:选择 Basic
    • 路径前缀:/dav
    • 用户名和密码:你的Oplist账户和密码

重要提醒:在Openlist后台的设置中,需要关闭全局签名选项,包括添加储存里面的启用签名也要关闭,否则会导致访问报错!

配置反向代理#

在宝塔面板网站设置中找到配置文件,添加以下内容:

# 反向代理 Openlist 访问链接
location ^~ /img {
proxy_pass http://localhost:5245/d/pic/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-Port $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_connect_timeout 60s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}

保存后,所有配置就全部完成了。

测试#

访问图床网址并选择任意图片进行上传:

  • 如果提示上传成功并返回访问链接
  • 同时在Openlist目录中也出现了对应的图片文件

此时就说明图床搭建成功了!

tips:由于Openlist的原因,访问返回的图片链接不会出现预览图片,而是提示下载图片,这不会影响图床的正常使用。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

搭建私有化大容量图床
https://blog.zwfpro.com/posts/build-imghub/
作者
赵公子
发布于
2024-05-11
许可协议
CC BY-NC-SA 4.0
最后更新于 2024-05-11,距今已过 893 天

部分内容可能已过时

评论区

Profile Image of the Author
赵公子
所见皆可记,所遇皆有意
公告
欢迎来到岁语集,这里是赵公子的博客,记录技术、生活与思考。
分类
标签
站点统计
文章
14
分类
7
标签
24
总字数
6,151
运行时长
0 天
最后活动
0 天前

目录