如何使用Lychee+cpolar搭建本地私人图床并实现远程访问存储图片

文章目录

  • 1.前言
  • 2. Lychee网站搭建
    • 2.1. Lychee下载和安装
    • 2.2 Lychee网页测试
    • 2.3 cpolar的安装和注册
  • 3.本地网页发布
    • 3.1 Cpolar云端设置
    • 3.2 Cpolar本地设置
  • 4.公网访问测试
  • 5.结语

1.前言

图床作为图片集中存放的服务网站,可以看做是云存储的一部分,既可以作为我们存放照片的存储空间,也可以建立外链成为网站或者文章的图片来源。但随着大厂运营的云存储日薄西山,各个图床的日子也不好过,甚至有的图床已经关门歇业。在这样的情况下,自建图床似乎成了唯一靠谱的选择。今天,笔者就为大家展示,使用Cpolar+ Lychee,建立一个简洁漂亮的私人图床网站。

2. Lychee网站搭建

Lychee是一款基于php的开源免费图床软件,正如其名称的翻译一样,Lychee也如荔枝一样干净透明,并且还能提供方便的图片操作编辑分组,以及用户管理、图片预览和外链等功能。对于私人用户来说,无疑是十分友好的。

2.1. Lychee下载和安装

由于lychee是开源项目,因此很自然的可以在github上找到其下载链接,当然也可以从其官网进入下载页面。

  • https://lychee.electerious.com
  • https://github.com/LycheeOrg/Lychee

20230428105301

20230428105302

Lychee的相关文件下载完成后,将下载的压缩包解压,并将文件放到运行环境的站点根目录中,笔者使用的是phpstudy作为网站运行环境,因此将lychee的网站文件放在WWW文件夹下。

20230428105303

20230428105304

接着,打开phpstudy,在软件主界面左侧点击“网站”按钮,进入网站列表页面,点击左上的“创建网站”按钮,进入新建网站的设置页面。

在网站设置页面,我们需要进行设置的内容并不多,只要设置:

  • 域名 - 本地lychee网站的域名,可随意输入;
  • 端口 – 本地lychee网页的输出端口,只要选择未被占用的端口即可;
  • 根目录 – 即lychee网页文件存放位置;
  • 程序类型 –lychee是web图床程序,运行需要依赖php7.2+,因此选择php7.2.9
  • 创建数据库 – 由于lychee网站运行需要依赖数据库,因此我们也要为lychee设置数据库,只要勾选“创建环境”列的“创建数据库”即可。

这些设置完成后,就可以点击最下方的“确认”按钮,保存lychee网站的设置。

20230428105305

需要注意的是,lychee的安装需要一些php的扩展组件,包括:Session、exif、mbstring、gd、mysqli、json、zip、imagick、optionally

好在phpstudy提供了PHP扩展的勾选项,让我们不必再一一配置这些PHP扩展(这也是笔者喜欢使用集成环境部署网站的原因)

20230428105306

2.2 Lychee网页测试

设置好lychee网页后,就可以在浏览器中输入localhost:端口号,访问到本地的lychee网页登录界面,此处需要输入的登录账户和密码,则是之前设置lychee网站的数据库登录名和密码。

20230428105307

20230428105308

2.3 cpolar的安装和注册

完成lychee网站的设置后,就能继续安装cpolar。与lychee网站的安装一样,cpolar也可以直接在cpolar的官网页面找到下载按钮。

cpolar官网:https://www.cpolar.com/

20230428105309

笔者使用的是Windows操作系统,因此选择Windows版本进行下载。

Cpolar下载完成后,将下载的文件解压,双击解压后的.msi文件,即可自动执行安装程序。接着只要一路“Next”就能完成安装。

20230428105311

20230428105312

为保证数据安全,cpolar会为每个用户创建独立的数据隧道,因此我们在使用cpolar之前,需要进行用户注册。注册过程也非常简单,只要点击cpolar主页右上角额“用户注册”,在注册页面填入必要信息,就能完成注册。

20230428105313

20230428105314

3.本地网页发布

到这里,我们完成了本地lychee图床网站的搭建,并安装了cpolar内网穿透程序,接下来我们就可以使用cpolar,创建一个内网穿透数据隧道,让我们能在公共互联网上访问本地的lychee图床网站。

3.1 Cpolar云端设置

通常免费版cpolar创建的数据隧道每24小时重置一次,为保证我们的图床网站能够长期稳定存续,因此笔者将cpolar升级至vip版。

下一步,我们登录cpolar的官网,在用户主页面左侧找到“预留”按钮,并点击进入cpolar的数据隧道预留页面。在这里设置一个公共互联网地址(可以看做数据隧道的入口),由于此时这个地址没有连接本地的软件输出端口,因此也可以看做是一条空白的数据隧道。

20230428105315

在预留页面,可以看到很多种可保留的数据隧道,这里我们选择“保留二级子域名”栏位。

20230428105316

在“保留二级子域名”栏位,需要进行几项信息的简单设置,即

  • 地区(服务器所在区域,就近选择即可)
  • 二级域名(会最终出现在生成的公共互联网地址中,作为网络地址的标识之一)
  • 描述(可以看做这条数据隧道的描述,能够与其他隧道区分开即可)。

完成这几项设置后,就可以点击右侧的“保留”按钮,将这条数据隧道保留下来。

20230428105317

当然,如果这条数据隧道不打算再使用,还可以点击右侧的“x”将其轻松删除,节约宝贵的隧道名额。

20230428105318

3.2 Cpolar本地设置

完成cpolar云端的设置,并保留了空白数据隧道后,我们回到本地的cpolar客户端,将云端生成的空白数据隧道与本地的测试页面连接起来,让我们能在公共互联网上访问到本地的测试页面。

在本地打开并登录cpolar客户端(可以在浏览器中输入localhost:9200直接访问,也可以在开始菜单中点击cpolar客户端的快捷方式)。

20230428105319

点击客户端主界面左侧“隧道管理”项下的“创建隧道”按钮,进入本地隧道创建页面(如果要创建每24小时重置地址的临时数据隧道,可直接在此进行设置,不必再cpolar官网设置空白数据隧道)。

在cpolar客户端创建隧道的页面,同样需要进行几项信息设置,这些信息设置包括:

1. 隧道名称 – 即cpolar本地隧道的注释,只要方便我们分辨即可;
2. 协议 – 由于的测试页面是网页,因此选择http协议;
3. 本地地址 –即为本地网站的输出端口号,因此这里也填入86;
4. 域名类型 – 由于我们已经在cpolar云端预留了二级子域名的数据隧道,因此勾选“二级子域名”(如果预留的是自定义域名,则勾选自定义域名),并在下一行Sub Domain栏中填入预留的二级子域名,这里我们填入“lycheeweb”。
但如果打算创建临时数据隧道,则直接勾选“随机域名”,由cpolar客户端自行生成网络地址;

5. 地区 – 与cpolar云端预留的信息一样,我们按实际使用地填写即可;

20230428105320

完成这些设置后,就可以点击页面下方的“创建”按钮,创建起能在公共互联网访问本地lychee网站的数据隧道。我们可以在“隧道管理”项下的“隧道列表”页面中,对这条数据隧道进行管理,包括开启、关闭或删除这条隧道,也可以点击“编辑”按钮,对这条数据隧道的信息进行修改。

20230428105321

4.公网访问测试

最后,我们点击左侧“状态”项下的“在线隧道列表”按钮,就能找到lychee网站的公共互联网地址。

20230428105322

将这个地址粘贴到浏览器中,就能看到本地lychee网站的登录页面,在输入登录名和密码后,就可以在公共互联网上访问到本地的图床页面。

20230428105323

20230428105324

5.结语

至此,我们就完成了本地lychee图床的部署,并通过cpolar生成的内网穿透数据隧道,将其发布到公共互联网,让我们本地的电脑成为私人图床,当然,cpolar还可以配合其他网站或软件,在其他应用场景中发挥作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/703396.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EAP-TLS实验之Ubuntu20.04环境搭建配置(FreeRADIUS3.0)(二)

上篇文章简要介绍了freeradius的搭建及配置,在最后数据库连接阶段还没进行测试验证,今天继续。 修改相关文件 1 radiusd.conf 打开762行注释($INCLUDE mods-enabled/sql); 2 sites-available/default …

Oracle数据泵跨大版本迁移数据库

Oracle数据泵跨大版本迁移数据库 source库导出元数据传输dump和数据文件到target库target库导入数据库迁移后的工作 🦈场景:将测试环境中一台Oracle 11g数据库迁移到另一台新搭建的19c数据库中。 🤔分析:由于是跨数据库大版本&…

【大数据】Flink SQL 语法篇(四):Group 聚合、Over 聚合

Flink SQL 语法篇(四):Group 聚合、Over 聚合 1.Group 聚合1.1 基础概念1.2 窗口聚合和 Group 聚合1.3 SQL 语义1.4 Group 聚合支持 Grouping sets、Rollup、Cube 2.Over 聚合2.1 时间区间聚合2.2 行数聚合 1.Group 聚合 1.1 基础概念 Grou…

Ubuntu22.04防火墙ufw用法

一、安装ufw sudo apt update sudo apt install ufw 二、启用ufw sudo ufw enable 三、 查看状态 sudo ufw status 四、允许访问指定端口 注意:务必要允许外部能够访问22端口(否则就无法ssh远程登录) ufw allow 22 允许内部/外部访…

将视频中的语音转换为文字:使用Python实现自动字幕

在多媒体内容中,视频是一个信息量巨大的载体。然而,有时我们需要从视频中提取出语音信息并转换为文本,比如为视频制作字幕,或是从讲座录像中提取讲稿。这篇技术博客将向你展示如何使用Python将视频中的语音转换为文字。 准备工作…

DevOps 周期的 6 个 C

中型到大型软件开发项目涉及许多人员、多个团队、资源、工具和开发阶段。它们都需要以某种方式进行管理和简化,不仅可以获得所需的产品,而且还要确保将来在不断变化的环境下易于管理和维护。组织通常遵循许多项目管理模型和技术。DevOps 是其中之一&…

【Rust】——所有权:Stack(栈内存)vs Heap(堆内存)(重点)

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

家用超声波清洗机哪个好?四款高评分超声波清洗机分享

超声波清洗机可以说是眼镜党家中必备的一款超声波清洗机,毕竟它能高效的帮我们解决清洗眼镜的烦恼,也可以帮我们清洗家中其他的一些物品。很多朋友因为各种原因没有时间清洗眼镜以及家中的小物件物品,长时间下来一次物品或者是眼镜上就会堆积…

SpringMVC的异常处理

异常分类 : 预期异常(检查型异常)和运行时异常 1、使用@ExceptionHandle注解处理异常 @ExceptionHandle(value={***.class} 异常类型) public modelandview handelException(){} 仅限当前类使用 2、全局处理方式 @ControllerAdvice + @ExceptionHandle 新建类 @Cont…

设计模式--享元模式和组合模式

享元模式 享元模式(Flyweight Pattern)又称为轻量模式,是对象池的一种实现。类似于线程池,线程池可以避免不停的创建和销毁多个对象,销毁性能。提供了减少对象数量从而改善应用所需的对象结构的方式。其宗旨是共享细粒…

卷积神经网络 CNN

目录 卷积网络与传统网络的区别 参数共享 卷积神经网络整体架构 卷积操作的作用 卷积核的定义 卷积特征值计算方法 卷积层涉及的参数 边缘填充 ​编辑 卷积结果计算 池化层 整体网格架构 VGG网络架构 残差网络Resnet 卷积网络与传统网络的区别 卷积神经网络&#x…

50.仿简道云公式函数实战-文本函数-ISEMPTY

1. ISEMPTY函数 判断值是否为空字符串、空对象或者空数组。 支持使用 ISEMPTY 函数的字段有:单行文本、多行文本、数字、日期时间、单选按钮组、复选框组、下拉框、下拉复选框、地址、定位、成员字段、部门字段、微信昵称、微信 OpenID、扩展字段。 2. 函数用法 …

API保障——电子商务安全性与稳定性设计

在这次深入探讨中,我们将深入了解API设计,从基础知识开始,逐步进阶到定义出色API的最佳实践。 作为开发者,你可能对许多这些概念很熟悉,但我将提供详细的解释,以加深你的理解。 ​ API设计:电…

19.openeuler OECA认证模拟题2

单选 1、()命令用于查看系统所有磁盘的信息,包括已挂载和未挂载磁盘。A A、fdisk -l B、su -I C、du -I D、free -i 2、在Linux中,通过设备名来访问设备,设备名存放在()目录中。D A、/etc B、/opt C、/root D、/dev 3、通过修改以下哪个配置文件可以实现

Linux 文件权限详细教程

目录 前言 查看文件权限 修改文件权限 符号方式 数字方式 前言 Linux 文件权限是系统中非常重要的概念之一,用于控制对文件和目录的访问。权限分为读(Read)、写(Write)、执行(Execute)三个…

Android Jni的介绍和简单Demo实现

Android Jni的介绍和简单Demo实现 文章目录 Android Jni的介绍和简单Demo实现一、JNI的简单介绍JNINDKJni的开发背景:**JNI在 Android 开发里的主要应用场景:** 二、JNI的简单Demo1、Demo主要界面和效果展示2、CMake编译加载文件add_library 指令的加载库…

将 lfslivecd-x86-6.3-r2145.iso 放入 PC中的 U盘做启动U盘

基于 LFS-6.3 将 系统放入 虚拟机中的 U盘 中讲述了 将 制作好的 LFS-6.3 放入 虚拟机的U盘,但是该U盘不能在PC启动.所以要 研究一下 将 制作好的 LFS-6.3 放入 PC的U盘,在做这个之前,要做一个 将 lfslivecd-x86-6.3-r2145.iso 放入 PC的U盘 将 lfslivecd-x86-6.3-r2145.iso 放…

力扣--双指针167.二数之和Ⅱ

这题一个穷举方法是比较好想到的&#xff1a; class Solution { public:vector<int> twoSum(vector<int>& numbers, int target) {int i,j;int nnumbers.size();vector<int>result(2,0);for(i0;i<n-1;i){for(ji1;j<n;j){if(numbers[i]numbers[j…

分库分表如何管理不同实例中几万张分片表?

大家好&#xff0c;我是小富&#xff5e; ShardingSphere实现分库分表&#xff0c;如何管理分布在不同数据库实例中的成千上万张分片表&#xff1f; 上边的问题是之前有个小伙伴看了我的分库分表的文章&#xff0c;私下咨询我的&#xff0c;看到他的提问我第一感觉就是这老铁…

《高质量的C/C++编程规范》学习

目录 一、编程规范基础知识 1、头文件 2、程序的板式风格 3、命名规则 二、表达式和基本语句 1、运算符的优先级 2、复合表达式 3、if语句 4、循环语句的效率 5、for循环语句 6、switch语句 三、常量 1、#define和const比较 2、常量定义规则 四、函数设计 1、参…