怎么使用LightPicture开源搭建图片管理系统并远程访问?【搭建私人图床】
文章目录
- 1.前言
- 2. Lightpicture网站搭建
- 2.1. Lightpicture下载和安装
- 2.2. Lightpicture网页测试
- 2.3.cpolar的安装和注册
- 3.本地网页发布
- 3.1.Cpolar云端设置
- 3.2.Cpolar本地设置
- 4.公网访问测试
- 5.结语
1.前言
现在的手机越来越先进,功能也越来越多,而手机的摄像功能也愈发强大,所拍摄的照片越来越清晰,但也让数码照片的体积暴涨。对于像笔者这样经常拍照的人来说,手机容量经常告警,因此笔者将家里的电脑改造成能随时上传下载和访问的图片服务器。今天,笔者就为大家展示,如何使用Cpolar内网穿透与Lightpicture组合,将个人电脑改造成能随时上传、下载或访问,并能生成外链的图床服务器。
2. Lightpicture网站搭建
Lightpicture是一款开源的轻量化图床系统,不仅支持本地图片存储,还可以配置第三方云盘作为存储空间。当然,也支持多用户注册,让其成为独立的图片网站,最重要的是,Lightpicture颜值很高,让人看着很舒服。现在,就让我们开始吧。
2.1. Lightpicture下载和安装
Lightpicture的下载网站无法打开(不知是不是缺乏维护的原因),因此笔者在网上找了个下载(https://bbs.liuxingw.com/t/47221.html),当然CSDN也有会员下载。不管怎么说,只要Lightpicture文件下载好即可。Lightpicture源码下载好后,将其解压。
将解压后的文件夹整个粘贴到网站根目录下。笔者使用的是phpstudy集成面板,因此将lightpicture文件夹放在phpstudy的WWW文件夹下。
接着,打开phpstudy
,在软件主界面左侧点击网站
按钮,进入网站列表页面,再点击网站列表页面左上的创建网站
按钮,进入新建网站的设置页面。
在网站设置页面,我们需要进行设置的内容并不多,只要设置
域名
- 本地打开Lightpicture文件管理器时输入的域名,可随意输入;端口
- Lightpicture文件管理器的网页输出端口,只要未被占用即可;根目录
– 即Lightpicture文件管理器的网页文件存放位置,在这个例子中,笔者将这些文件放在phpstudy的www文件夹下;需要注意的是,根目录不能只指向lightpicture文件夹,而是要将其指向lightpicture文件夹下的public文件夹。程序类型
– 由于Lightpicture文件管理器是一个轻量化的web程序,运行需要依赖php7.2.5及以上,因此笔者选择php7.2.9。注:Lightpicture需要开启php的PDO、fileinfo、curl几项扩展,否则可能导致网站错误。数据库
– lightpicture运行时需要数据库支持,因此可以在网站设置时勾选“创建数据库”栏位,建立一个lightpicture使用的数据库。
完成相关设置后,就可以点击最下方的确认
按钮,保存Lightpicture网页的设置。
网页基本设置完成后,我们还需要修改下重写规则(Rewrite)
,否则在我们登录网站时,会显示用户登录错误问题。Apache和Nginx分别如下:
- Apache:
<IfModule mod_rewrite.c>Options +FollowSymlinks -MultiviewsRewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
- Nginx:
location / { if (!-e $request_filename) {rewrite ^(.*)$ /index.php?s=/$1 last;}
}
由于笔者使用的是Nginx,因此在lightpicture网站文件夹下的public文件夹里,找到名为nginx.htaccess
的文件,将上文Nginx代码粘贴进去。
接着,在浏览器中输入域名:install
,就能开始安装程序。安装过程很简单,只要一路下一步
就可以。
完成安装后,如果直接登录lightpicture网站,会显示未设置默认文档
这里我们只要在phpstudy的lightpicture网站条目右侧,点击管理
按钮下的网站首页设置
,将index.php
粘贴到index.html
之后,就能修改index.html文档的权重。同时,php的扩展也可以在网站条目右侧的管理按钮中,找到开启选项。
2.2. Lightpicture网页测试
完成上述步骤后,再次在浏览器地址栏中输入域名+端口号(笔者输入的是localhost:82)
,就能访问到本地的lightpicture网页。
需要注意的是,lightpicture自带一个默认管理员账号(用户名admin,密码123456),在我们使用管理员账号登录后,要记得修改。
2.3.cpolar的安装和注册
完成lightpicture图床搭建后,就可以转入cpolar内网穿透的安装。相比lightpicture网站设置,cpolar内网穿透的安装注册简单得多。我们直接访问cpolar的官网页面(https://www.cpolar.com/)找到下载
按钮。
笔者使用的是Windows操作系统,因此选择Windows版本进行下载。
Cpolar下载完成后,将下载的文件解压,双击解压后的.msi
文件,即可自动执行安装程序。接着只要一路Next
就能完成安装。
cpolar会为每个用户创建独立的数据隧道,在加上用户密码和token码保证数据安全,因此在使用cpolar之前,需要进行用户注册。注册过程非常简单,只要在cpolar主页右上角点击用户注册
,在注册页面填入必要信息,就能完成注册。
3.本地网页发布
到这里,我们完成了lightpicture的本地测试,并安装了cpolar内网穿透程序,接下来我们就可以使用cpolar,创建一个能够连接本地lightpicture的公共互联网地址,让我们能在公共互联网上访问到lightpicture图床网站。
3.1.Cpolar云端设置
由于图床网站需要长期在线,而免费版cpolar创建的数据隧道每24小时会重置一次,笔者不想每天进行数据隧道重设,因此升级cpolar至vip版,以便能长期稳定的访问lightpicture网站。接下来,我们就可以着手穿透家里的局域网,将本地lightpicture图床穿透内网。
要达到内网穿透的目的,需要先登录cpolar的官网,在用户主页面左侧找到预留
按钮,点击进入cpolar的数据隧道预留页面。在这里生成一个公共互联网地址(也可以看做数据隧道的入口),由于此时这个地址还没有连接本地的lightpicture网站,因此也可以看做是一条空白的数据隧道。
在预留页面,可以看到很多种可保留的数据隧道,这里我们选择保留二级子域名
栏位。
在保留二级子域名
栏位,需要进行几项信息的简单设置,即
地区
(服务器所在区域,就近选择即可)二级域名
(会最终出现在生成的公共互联网地址中,作为网络地址的标识之一)描述
(可以看做该数据隧道的描述,能够与其他隧道区分开即可)。
完成这几项设置后,就可以点击右侧的保留
按钮,将这条数据隧道保留下来。
当然,如果数据隧道不打算使用,可以点击右侧的“x”将其轻松删除,节约宝贵的数据隧道名额。
3.2.Cpolar本地设置
完成cpolar云端的设置,并保留了空白数据隧道后,我们回到本地的cpolar客户端,将云端生成的空白数据隧道与本地lightpicture页面连接起来,让我们能在公共互联网上访问到本地lightpicture网站。
在本地打开并登录cpolar客户端(可以在浏览器中输入localhost:9200直接访问,也可以在开始菜单中点击cpolar客户端的快捷方式)。
点击客户端主界面左侧隧道管理
项下的创建隧道
按钮,进入本地隧道创建页面(如果要创建每24小时重置地址的临时数据隧道,可直接在cpolar本地客户端进行同样设置,而不必在cpolar官网设置空白数据隧道)。
在这个页面,同样需要进行几项信息设置,这些信息设置包括:
隧道名称
– 可看做是cpolar本地的隧道信息注释,方便我们分辨即可;协议
– 由于lightpicture是网页程序,因此选择http协议;本地地址
– 本地地址即为lightpicture图床的输出端口号,而我们设置的端口为82,因此这里也填入82;域名类型
– 在这个例子中,我们已经在cpolar云端预留了二级子域名的数据隧道,因此勾选“二级子域名”(如果预留的是自定义域名,则勾选自定义域名)。并在下一行“Sub Domain”栏中填入预留的二级子域名,该例子中为“lightpicweb”。如果打算创建临时数据隧道,则直接勾选“随机域名”,由cpolar客户端自行生成网络地址;地区
– 与cpolar云端预留的信息一样,我们依照实际使用地填写即可;
完成这些设置后,就可以点击页面下方的创建
按钮,将cpolar云端的空白数据隧道与本地lightpicture页面连接起来,也就生成了能在公共互联网上访问到本地lightpicture图床的内网穿透数据隧道。
我们可以在隧道管理
项下的隧道列表
页面中,对这条数据隧道进行管理,包括开启、关闭或删除这条隧道,也可以点击“编辑”按钮,对这条数据隧道的信息进行修改。
4.公网访问测试
最后,我们点击左侧状态
项下的在线隧道列表
按钮,就能找到lightpicture页面的公共互联网地址,将这个地址粘贴到浏览器中,就能看到本地电脑上的lightpicture页面。
5.结语
图床作为现代网站必不可或缺的辅助网站,对于自建网站的意义不言而喻。但由于这项业务并不赚钱,因此各互联网大厂已经逐渐关停该业务,也让自建图床成为必然选择。当然,图床软件千千万,我们可以用相同的方式,将其他图床网站也用相同的方式,发布到公共互联网上。
转载自cpolar极点云的文章:【搭建私人图床】使用LightPicture开源搭建图片管理系统并远程访问
相关文章:

怎么使用LightPicture开源搭建图片管理系统并远程访问?【搭建私人图床】
文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进,功能也越来越多,而手机…...

pytorch_神经网络构建4
文章目录 循环神经网络LSTM词嵌入skip-Gram模型N-Gram模型词性预测RNN循环神经网络的基础模块实现RNN识别图片RNN时间序列预测词向量模块词向量运用N-Gram模型lstm词性预测 循环神经网络 这个网络主要用来处理序列信息,之前处理图片时大部分是分析图片的结构信息, 什么是序列信…...

外骨骼机器人和人形机器人概览
前言:一点思考 外骨骼机器人和人形机器人都曾随着一些爆品的出现火热过一段时间,但总感觉当前技术条件还不成熟,真正能落地的应用场景不多。马斯克在擎天柱发布会上被问到人形机器人的落地与前景问题时并没有给出明确答案,只是用…...

Java面试题:链表-反转链表
问题描述 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},…...

el-upload实现上传文件夹
背景:如图一所示,最下面有一个黄色上传文件按钮,为手动上传而且上传区域有上传文件和上传文件夹的区分 所以需要在点击了上传文件夹做特殊处理使得el-upload可以上传文件夹 一、template区域 <el-uploadclass"upload-file"dra…...

京东数据平台(京东数据分析)2023年9月京东冰箱行业品牌销售排行榜!
鲸参谋监测的京东平台9月份冰箱市场销售数据已出炉! 9月份,大家电行业整体下滑,而冰箱作为大家电市场中的重点品类,受行业趋势变动的影响,冰箱销售市场也同样下滑。鲸参谋数据显示,9月在京东平台上…...

【Excel】WPS单元格快速转换表格字母大小写
使用WPS Office打开表格,选择需要处理的单元格或单元格区域。 依次点击「会员专享」选项卡 —>「智能工具箱」。 再点击「格式」—>「大小写」,选择一种大小写转换方式即可。...

【java】【重构一】分模块开发设计实战
目录 一、创建项目 1、先创建一个空项目 2、设置项目SDK等 二、创建父模块 选择springboot 1、创建父模块parent 2、删除多余文件,只保留pom.xml 3、修改pom.xml 4、将部分公共依赖加入到pom 三、创建实体类子模块entity 1、创建实体类子模块entity 2、…...

Cocos Creator3.8 项目实战(十)使用 protobuf详细教程
在 Cocos Creator 中使用 protobuf.js 库可以方便地进行协议的序列化和反序列化。 下面是使用 protobuf.js 的详细说明: 一、protobuf环境安装 1、安装 npm protobuf环境安装安装需要使用 npm 命令进行,因此首先需要安装 npm 。 如果你还没安装 npm …...

第七章:最新版零基础学习 PYTHON 教程—Python 列表(第八节 -在 Python 中获取列表作为用户的输入)
我们经常遇到需要将数字/字符串作为用户输入的情况。在本文中,我们将了解如何使用Python从用户处获取输入列表。 目录 使用Loop在 Python 中获取用户输入的列表 Python3...

Simple RPC - 02 通用高性能序列化和反序列化设计与实现
文章目录 概述设计实现通用的序列化接口通用的序列化实现【推荐】 vs 专用的序列化实现专用序列化接口定义序列化实现 概述 网络传输和序列化这两部分的功能相对来说是非常通用并且独立的,在设计的时候,只要能做到比较好的抽象,这两部的实现…...

简单秒表设计仿真verilog跑表,源码/视频
名称:简单秒表设计仿真 软件:Quartus 语言:Verilog 代码功能: 秒表显示最低计时为10ms,最大为59:99,超出返回00:00 具有复位、启动、暂停三个按键 四个数码管分别显示4个时间数字。 演示…...

【发布】Photoshop ICO 文件格式插件 3.0
备注:本文原文首发于博客园: https://www.cnblogs.com/hoodlum1980/p/17766287.html 【简介】 Photoshop ICO 插件是为 Photoshop 开发的功能扩展插件,使得 Photoshop 可以直接读写 ICO 格式文件。由于 Photoshop 具有强大的像素位图编辑功…...

负载均衡、代理和动静分离的战略
一、Nginx简介 1.1 概述 Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理服务器,特点是占有内存少,并发能力强,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数 。 1.2正向代理与反向代理 1.2.1正向代理 正向代理:如果把局域网外的 Internet 想象…...

Gitlab用户角色权限Guest、Reporter、Developer、Master、Owner
Gitlab用户在组中有角色权限:Guest、Reporter、Developer、Master、Owner Gitlab权限管理 Guest:可以创建issue、发表评论,不能读写版本库 Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限 Deve…...

C#上位机序列9: 批量读写+事件广播+数据类型处理
一、源码结构: 二、运行效果: 三、源码解析 1. 读取配置文件及创建变量信息(点位名称,地址,数据类型(bool/short/int/float/long/double)) 2. 异步任务处理:读任务&…...

科技资讯|2023全球智能手表预估出货1.3亿块,智能穿戴提升AI功能
根据集邦咨询公布的最新报告,受全球经济低迷影响,2023 年全球智能手表出货量预估为 1.3 亿块。苹果以超过 30% 的份额领先,其次是三星(接近 10%)、华为、Garmin、Fitbit 等。 报告认为苹果、三星和华为等主要智能手表…...

技术架构之术
架构特征 1、结构性特征 易理解、可复用、可移植、可扩展、可配置、可维护、可测试 2、运行时特征 可靠性、稳定性、高安全、可伸缩、易用性、可用性、高性能、可观测 3、交付性特征 高效率、高适配、标准化、灵活性、易定制、统一性、开放性 如何开展我们的架构工作 价值分…...

【自用重要】概率论中θ和θ尖的区别【计算时的一般方法】
θ就相当于x,是一个值。 θ尖就相当于X,是一个量。 在做分布函数的时候,最好把θ尖换成Z的形式,因为他们都是量,这样比较好看。 在做不等式的时候,一般把量放在中间进行计算,因为随机变量有分…...

Redis设计与实现笔记 - 数据结构篇
Redis设计与实现笔记 - 数据结构篇 相信在我们日常使用中,会经常跟 Redis 打交道。数据结构 String、Hash、List、Set 和 ZSet 都是常用的数据类型。对于使用场景,我们可以滔滔不绝地说很多,但是我们从来就没有关心过它们的底层实现…...

线性代数-Python-01:向量的基本运算 -手写Vector -学习numpy的基本用法
文章目录 代码目录结构Vector.py_globals.pymain_vector.pymain_numpy_vector.py 一、创建属于自己的向量1.1 在控制台测试__repr__和__str__方法1.2 创建实例测试代码 二、向量的基本运算2.1 加法2.2 数量乘法2.3 向量运算的基本性质2.4 零向量2.5 向量的长度2.6 单位向量2.7 …...

数字图像处理实验记录二(直方图和直方图均衡化)
文章目录 一、基础知识1,什么是直方图2,直方图有什么用3,直方图均衡化4、原理代码实现 二、实验要求任务1:任务2: 三、实验记录任务1:任务2: 四、结果展示任务1:任务2: 五…...

大数据Flink(九十九):SQL 函数的解析顺序和系统内置函数
文章目录 SQL 函数的解析顺序和系统内置函数 一、SQL 函数...

TODO Vue typescript forEach的bug,需要再核實
forEach 一個string[],只有最後一個匹配條件有效,其它條件無效。 所以,只能替換成普通的for循環。 console.log(taskList)// for (const _task of taskList.value) {// if (_task invoiceSendEmail) {// form.value.invoiceSendEmail…...

简记一个错误
简记一个Flutter错误: Using hardware rendering with device sdk gphone64 x86 64. If you notice graphics artifacts, consider enabling software rendering with “–enable-software-rendering”. Launching lib\main.dart on sdk gphone64 x86 64 in debug …...

第四次作业
1.打印各种图形 A.矩形 a int(input("请输入行数: ")) i 0 while i < a:print("*"*10)i1 结果: B.直角三角形 a int(input("请输入行数: ")) i 0 while i<a:print("*"*(i1))i1 结果: C.反直角三角形 …...

面试问题整理总结
1.自我介绍 2.为什么想转测试 想换一个方向,测试开发在一定程度上也是属于开发,而且站在测试的角度能看到全局的东西更多,对需求的理解需要更深”,之前的开发工作比较专一,测试的视野更加开阔,想要站在更高…...

进阶JAVA篇- Collection 类的常用的API与 Collection 集合的遍历方式
目录 1.0 Collection 类的说明 1.1 Collection 类中的实例方法 2.0 Collection 集合的遍历方式(重点) 2.1 使用迭代器( Iterator )进行遍历 2.2 使用增强型 for 循环进行遍历 2.3 使用 Java 8的 Stream API 进行遍历(使…...

CentOS | 添加普通用户并授权sudo
sudo -i adduser peter passwd peter whereis sudoers nano /etc/sudoers添加一行新用户到root组 ## Allow root to run any commands anywhere root ALL(ALL) ALL peter ALL(ALL) ALL如果提升权限后无法cd到其他目录等,修改 /etc/passwd 文件&…...

【MyBatis】mybatis工具类迭代
目录 MyBatis工具类的迭代 ThreadLocal使用 mybatis工具类终极版: MyBatis工具类的迭代 public class MyBatisUtil {//工具类构造方法私有化private void MyBatisUtil() {}//方法一public static SqlSession getSqlSession(){try {SqlSessionFactoryBuilder sql…...