【Lychee图床】本地电脑搭建私人图床,公网远程访问_本地图床-程序员宅基地

技术标签: Lychee  好文分享  

转发自CSDN风浪越大%鱼越贵的文章:Lychee图床 - 本地配置属于自己的相册管理系统并远程访问

1.前言

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

2. Lychee网站搭建

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

2.1. Lychee下载和安装

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

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还可以配合其他网站或软件,在其他应用场景中发挥作用。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43649937/article/details/130692071

智能推荐

vue-cli 配置多环境打包_debugger attached. > [email protected]程序员宅基地

文章浏览阅读1.9k次。情况由于目前前端切换 环境配置 变得比较频繁 之前的手动切换环境配置的方式比较繁琐且容易遗漏或者出错 配置多环境,可以实现一键打包测试包或生产包初步实现npm run dev // 本地运行--开发环境npm run dev:test // 本地运行--测试环境npm run build:test // 打包发布--开发环境npm run build:prod // 打包发布--测试环境步骤1.在根目录新建文件.env.dev、.env.testenv、 .env.pr_debugger attached. > [email protected] lint > vue-cli-service li

解决:Assign object to a variable before exporting as module default-程序员宅基地

文章浏览阅读3.7k次,点赞2次,收藏4次。export default { user: {}}解决:const user = { user: {}}export default user;_assign object to a variable before exporting as module default

Nature 新研究发布,GPT 驱动的机器人化学家能够自行设计和进行实验,这对科研意味着什么?_gpt4 生物学科研-程序员宅基地

文章浏览阅读2k次,点赞28次,收藏21次。如此一来,假设要求 Coscientist 合成某种物质时,Coscientist 会在互联网上搜索合成路线,然后设计所需反应的实验方案,下一步编写代码来指导移液机器人,最后运行代码,使机器人执行其预定的任务。PYTHON 指令控制 Code execution 模块,Code execution 是一个隔离的 Docker 容器,提供一个独立的 python 执行环境,可以完成实验相关的计算工作。能够完成如此复杂的实验任务,关键在于多模块交互的系统架构。比如,在云实验室中远程操控移液机器人开展实验。_gpt4 生物学科研

玩转Omniverse | 将FBX文件导入Omniverse View,以及step等3D格式如何转换为USD文件的过程_usd explorer可以转换文件类型-程序员宅基地

文章浏览阅读526次,点赞11次,收藏10次。打开usd explorer 选择step,然后右键选择convert to USD,点击确认,稍等一会就会转换为USD,很好用。在omniverse中安装usd explorer。1,参考这个过程,玩转Omniverse |_usd explorer可以转换文件类型

Python3.x 标准模块库目录(下篇)_python 3.x标准库-程序员宅基地

文章浏览阅读3.6k次,点赞2次,收藏10次。Python Standard Library 翻译: Python 江湖群10/06/07 20:10:08 编译 0.1. 关于本书 0.2. 代码约定 0.3. 关于例子 0.4. 如何联系我们 核心模块 1.1. 介绍 1..._python 3.x标准库

Android沉浸式状态栏 + actionBar透明渐变 + scrollView顶部伸缩_android沉浸式状态栏和背景图拉伸-程序员宅基地

文章浏览阅读6.7k次,点赞4次,收藏14次。闲话不多说,直接上图。给大家讲讲我的编程思想吧。第一部分:沉浸式状态栏(API-Level 19, Android4.4 KitKat 之后加入的东西),而且在Api-Level 21版本中新增了一个属性(下面会说到)。所以,style文件应该声明三份。valuesname="TranslucentTheme" parent="@_android沉浸式状态栏和背景图拉伸

随便推点

spark-submit yarn-client 模式下 --jars spark.driver.extraClassPath spark.executor.extraClassPath区别和联系-程序员宅基地

文章浏览阅读5.8k次,点赞3次,收藏9次。–jars作用是在运行时把jar包分发到worker的指定目录上,一般是/var/run/spark/work目录,但是并不会把这些jar包自动装载到executor的classpath中使用案例:单包:–jars /tmp/add1.jar多包:–jars /tmp/add1.jar,/tmp/add2.jarspark.executor.extraClassPath显式地将jar..._spark.driver.extraclasspath

物联网项目分享 Stm32酒驾检查系统 - 单片机 嵌入式 物联网_stm32f103c8t6酒精浓度检测-程序员宅基地

文章浏览阅读915次,点赞16次,收藏23次。 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是基于Stm32的酒驾检查系统设计与实现学长这里给一个题目综合评分(每项满分5分)难度系数:3分工作量:3分创新点:3分基于STM32单片机酒精浓度检测报警系统。_stm32f103c8t6酒精浓度检测

java.lang.IllegalStateException: Failed to load ApplicationContext-程序员宅基地

文章浏览阅读228次。错误提示:public java.lang.String com.zdnl.controlle.Users.UsersController.UpdateUser(javax.servlet.http.HttpSession,java.lang.String,java.lang.String)to {POST /user/ufindbyph}: There is already ‘usersCo..._java.lang.illegalstateexception: failed to load applicationcontext caused by

四川电信烽火HG680KA_高安版 (CA)(黄标4K)国科GK6323V100C-安卓4.4.2-拆机短接强刷固件包_gk6323v100c固件-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏2次。2、将压缩包里的bl31.bin、recovery.img、fastboot.bin、bootargs.bin四个引导文件和update.zip,共计5个文件拷贝到U盘根目录下。3、盒子关机,U盘插入机顶盒usb端口,按指示图短接短接点(C49短接5秒后松开),按住不松,然后开机通电,数5秒后松开短接,过一会电视上显示升级,等着就好了。_gk6323v100c固件

关于Linux上下文切换_linux set_saved_sp-程序员宅基地

文章浏览阅读1.6k次。关于Linux上下文切换1. 内核栈切换 (MIPS)调度切换至一个进程时,根据 task_struct->thread_info 的值设置 *kernelsp(当前正在运行进程之内核栈栈底),其值为 thread_info + THREAD_SIZE - 32(MIPS 下,使用 set_saved_sp 宏)。2. 异常、中断寄存器的保存 (MIPS)使用SAVE_SOME_linux set_saved_sp

SpannableString、SpannableStringBuilder与String的关系-程序员宅基地

文章浏览阅读65次。一、概述 1、SpannableString、SpannableStringBuilder与String的关系 首 先SpannableString、SpannableStringBuilder基本上与String差不多,也是用来存储字符串,但它们俩的特殊就在 于有一个SetSpa..._java spanned和string

推荐文章

热门文章

相关标签