DIY私人图床:使用CFimagehost源码自建无需数据库支持的PHP图片托管服务

文章目录

  • 1.前言
  • 2. CFImagehost网站搭建
    • 2.1 CFImagehost下载和安装
    • 2.2 CFImagehost网页测试
    • 2.3 cpolar的安装和注册
  • 3.本地网页发布
    • 3.1 Cpolar临时数据隧道
    • 3.2 Cpolar稳定隧道(云端设置)
    • 3.3.Cpolar稳定隧道(本地设置)
  • 4.公网访问测试
  • 5.结语

1.前言

图片服务器也称作图床,可以说是互联网存储中最重要的应用之一,不仅网站需要图床提供的外链调取图片,个人或企业也用图床存储各种图片,方便随时访问查看。不过由于图床很不挣钱,各互联网大厂正在逐步关停所属的图床服务器,这也导致用户只能自己想办法,搭建自己的图床服务器。今天,笔者就为大家介绍,如何使用Cpolar+ CFImagehost,搭建简洁易用的私人图床。

2. CFImagehost网站搭建

CFImagehost在国外是一款非常知名的图床程序,国内使用的人数也不少。其外观设计和功能布局都做的简洁易用,对于用户阿狸说非常友好。不过美中不足的是,CFImagehost目前没有官方汉化,导致某些页面的中文显示不够完美。不管怎么说CFImagehost还是一款值得一用的图床程序。

2.1 CFImagehost下载和安装

CFImagehost是一款开源程序,因此我们可以在github上找到下载(https://github.com/wbbim/cfimagehost-on-openshift)。同时,在网上也有很多经汉化的CFImagehost的源码,大家按需选择即可。

20230526091301

CFImagehost下载完成后,将下载的压缩包解压,就能得到CFImagehost的源码文件夹。将这个文件夹粘贴到网站文件夹下,笔者使用的是phpstudy集成面板,因此将CFImagehost文件夹粘贴到phpstudy的WWW文件夹下。

20230526091302

20230526091303

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

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

  • 域名 - 本地打开CFImagehost网站时输入的域名,可随意输入;
  • 端口 - CFImagehost网站的网页输出端口,只要未被占用即可;
  • 根目录 – 即CFImagehost网站文件存放位置,在这个例子中,笔者将这些文件放在phpstudy的www文件夹下;
  • 程序类型 – 由于CFImagehost网站是一个轻量化的web程序,运行需要依赖php5X以上,因此笔者选择php7.2.9(注:经过实测使用后,感觉php5.6兼容性更好,大家可以根据实际情况选择)。
  • 数据库 – CFImagehost网站设置时并不一定要配置数据库,在网站安装过程中也会进行数据库配置,不过为了节省安装时间,笔者选择在此时设置数据库信息。

注:关于伪静态规则,Apache自带了伪静态规则,因此不必进行额外设(笔者也选择了Apache作为网页程序)。但如果使用Nginx作为网页程序,则需要将以下代码写入伪静态规则中。

rewrite /pm-(.*)\.(jpg|png|gif|html)$ /index.php?pm=$1;
rewrite /pt-(.*)\.(jpg|png|gif|html)$ /index.php?pt=$1;
rewrite /dt-(.*)\.(jpg|png|gif)$ /index.php?dt=$1;
rewrite /dm-(.*)\.(jpg|png|gif)$ /index.php?dm=$1;
rewrite /di-(.*)\.(jpg|jpeg|png|gif|bmp)$ /index.php?di=$1;
rewrite /gallery/(.*)\/$ /gallery.php?p=$1;

完成相关设置后,就可以点击最下方的确认按钮,保存CFImagehost网站的设置。

20230526091304

接着我们在浏览器地址栏中输入本地地址:端口号(这里笔者输入的是localhost:82),就可以进入CFImagehost网站的安装程序。网站安装过程与其他网站无异,只要根据网页提示进行操作即可。

20230526091305

20230526091306

在这里,CFImagehost会对安装环境进行检查,我们要注意的是需要开启php的GDcURL两项扩展。

20230526091307

在这一步CFImagehost会对数据库进行检查,如果在pgpstudy没有设立数据库的,CFImagehost会在这步进行数据库设置,

20230526091308

CFImagehost网站安装完成后,我们回到CFImagehost的根目录,将install文件夹整个删除,否则访问CFImagehost网站时会重复显示CFImagehost网站安装页面。

20230526091309

2.2 CFImagehost网页测试

完成CFImagehost网站网站安装后,我们在浏览器地址栏输入本地地址:端口号(localhost:82),就能打开CFImagehost网站的主页面,主页面右上角可以选择网站语言。

20230526091310

如果想要进入CFImagehost网站后台页面,则需要在CFImagehost网站本地地址后面加上admin.php。在后台页面,可以对CFImagehost网站网站进行细节设置。CFImagehost默认的后台管理员登录名为admin,登录密码为password。在进入CFImagehost后台后,应及时修改管理员用户名和密码。

20230526091311

20230526091312

2.3 cpolar的安装和注册

完成CFImagehost网站设置,就可以转入cpolar的安装。相比CFImagehost网站部署,cpolar的安装注册要简单很多。直接在cpolar的官网页面(https://www.cpolar.com/),就能找到“下载”按钮。

20230526091313

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

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

20230526091315

20230526091316

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

20230526091317

20230526091318

3.本地网页发布

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

3.1 Cpolar临时数据隧道

为满足部分客户需要的网页临时测试功能,cpolar可以直接在cpolar户端创建临时数据隧道(每隔24小时重置一次公共互联网地址,)。要创建临时数据隧道,我们直接在本地设备上登录cpolar客户端(在浏览器地址栏输入localhost:9200),并在cpolar客户端主界面点击隧道管理项下的创建隧道按钮,进入创建隧道设置页面。

20230526091319

在“创建隧道”页面,我们需要对几项信息设置,这些信息设置包括:

  • 隧道名称 – 可以看做cpolar客户端的隧道信息注释,只要方便我们分辨即可;
  • 协议 – CFImagehost网站是网页程序,因此选择http协议;
  • 本地地址 – 本地地址即为本地CFImagehost网站的输出端口号,因此这里也填入82;
  • 域名类型 –这里我们可以区分数据隧道是临时使用,或是长期存续。由于我们只是先进行临时测试,因此选择“随机域名”(二级子域名和自定义域名都是长期稳定隧道,需要在cpolar云端预留公共互联网地址)。
  • 地区 – 即服务器所在位置,我们依照实际使用地就近填写即可;

20230526091320

完成这些设置后,就可以点击页面下方的创建按钮,建立一条临时数据隧道。临时数据隧道创建完成后,cpolar客户端会自动跳转至隧道管理项下的隧道列表页面,在这里我们可以看到cpolar本地的所有数据隧道(无论临时还是长期)。我们也可以在这里,对数据隧道进行管理,包括开启、关闭或删除这条隧道,也可以点击“编辑”按钮,最这条数据隧道的信息进行修改。

20230526091321

而我们创建的能够连接本地CFImagehost网站的临时公共互联网网址,则可以在状态项下的在线隧道列表中找到。

20230526091322

将这里显示的公共互联网地址粘贴到浏览器地址栏,就能访问到本地的CFImagehost网站页面。

20230526091323

不过,此时的CFImagehost数据隧道还只是临时数据隧道,每24小时就会重置一次公共互联网网址。如果还想要连接本地CFImagehost网页,就需要使用新地址连接。

3.2 Cpolar稳定隧道(云端设置)

如果想要为本地CFImagehost网站设置能长期稳定存在的数据隧道,我们需要先将cpolar升级至VIP版。

20230526091324

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

20230526091325

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

20230526091326

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

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

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

20230526091327

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

20230526091328

3.3.Cpolar稳定隧道(本地设置)

完成cpolar云端的设置,并保留了空白数据隧道后,我们回到本地的cpolar客户端,将云端生成的空白数据隧道与本地的测试页面连接起来。

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

点击客户端主界面左侧隧道管理项下的隧道列表按钮,进入本地隧道的页面,再点击对应隧道的编辑按钮。

20230526091329

在本地隧道的“编辑”页面(与创建本地临时隧道的页面一样),我们只要对域名类型进行修改,就能将cpolar云端设保留的公共互联网地址,与本地cpolar创建的CFImagehost数据隧道连接起来。

我们已经在cpolar云端预留了二级子域名的数据隧道,因此改选为二级子域名(如果预留的是自定义域名,则勾选自定义域名),并在下一行Sub Domain栏中填入预留的二级子域名,该例子中为“CFImagehost”。

20230526091330

完成“域名类型”的更改后,就可以点击页面下方的更新按钮,将cpolar云端的空白数据隧道与本地CFImagehost网站连接起来,即生成了能够长期稳定存在的CFImagehost网站数据隧道。

4.公网访问测试

最后,我们再次进入在线隧道列表页面,将更新后的CFImagehost网站公共互联网地址粘贴到浏览器中,就能看到使用能够长期稳定存在访问的CFImagehost网站,达成了将本地CFImagehost网站发布到公共互联网上的目的。

20230526091331

20230526091332

5.结语

CFImagehost网站只是众多网站源码中的一种,我们还可以在本地设备上安装其他类型的网站源码,部署不同功能和应用场景的网站。这些网站也都可以使用cpolar发布到公共互联网上,让我们的本地设备成为私人网站服务器,为我们的生活和工作带来更大便利。

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

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

相关文章

JVM 调优指南

文章目录 为什么要学 JVM一、JVM 整体布局二、Class 文件规范三、类加载模块四、执行引擎五、GC 垃圾回收1 、JVM内存布局2 、 JVM 有哪些主要的垃圾回收器?3 、分代垃圾回收工作机制 六、对 JVM 进行调优的基础思路七、 GC 情况分析实例 JVM调优指南 -- 楼兰 ​ JV…

ArcGIS Pro 优化的热点分析【Optimized Hot Spot Analysis】

ArcGIS Pro 优化的热点分析【Optimized Hot Spot Analysis】Optimized Hot Spot Analysis 优化的热点分析https://mp.weixin.qq.com/s/lfoIls8exW5G6PPJ9gtDew em,先给大家推荐一个空间统计分析的学习资源网站 https://spatialstats-analysis-1.hub.arcgis.com/ .…

6.9平衡二叉树(LC110-E)

绝对值函数:abs() 算法: 高度和深度的区别: 节点的高度:节点到叶子节点的距离(从下往上) 节点的深度:节点到根节点的距离(从上往下) 逻辑:一个平衡二叉树…

pipeline jenkins流水线

Pipeline 是 Jenkins 中一种灵活且强大的工作流机制,它允许您以代码的形式来定义和管理持续集成和持续交付的流程。 Pipeline 的作用主要体现在以下几个方面: 可编排的构建流程:使用 Pipeline,您可以将一个或多个阶段&#xff08…

Mac安装win程序另一个方案

前言 今天跟大家分享的是mac装win程序的另一个思路,不需要大动干戈的装双系统、虚拟机。最后分享感受,先说过程吧。 一、思路介绍 其实,就是利用CrossOver,这个软件的介绍大家可以自行了解。不过不得不说这玩意还是国外的人思路新…

在线预览excel,luckysheet在vue项目中的使用

一. 需求 需要在内网项目中在线预览excel文档,并可以下载 二.在项目中下载并引入luckysheet 1.打开项目根目录,npm i luckyexcel 安装 npm i luckyexcel2.在项目的index.html文件中引入依赖 外网项目中的引入(CDN引入)&#…

基于Java+SpringBoot+Vue3+Uniapp+TypeScript(有视频教程)前后端分离健身预约系统设计与实现

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

【Python自动化】定时自动采集,并发送微信告警通知,全流程案例讲解!

文章目录 一、概要二、效果演示三、代码讲解3.1 爬虫采集行政处罚数据3.2 存MySQL数据库3.3 发送告警邮件&微信通知3.4 定时机制 四、总结 一、概要 您好!我是马哥python说,一名10年程序猿。 我原创开发了一套定时自动化爬取方案,完整开…

plantuml最原始的主题如何设置

在startuml下一行添加 skin rose startuml skin rose:Hello world; :This is defined on several **lines**;enduml 效果如下: plantuml官网地址如下: ​​​​​​使用简单的文字描述画UML图的开源工具。轻松从简单的文字说明创建UML图。也有许多种可…

WordPress主题WoodMart v7.3.2 WooCommerce主题和谐汉化版下载

WordPress主题WoodMart v7.3.2 WooCommerce主题和谐汉化版下载 WoodMart是一款出色的WooCommerce商店主题,它不仅提供强大的电子商务功能,还与流行的Elementor页面编辑器插件完美兼容。 主题文件在WoodMart Theme/woodmart.7.3.2.zip,核心在P…

hive sql 行列转换 开窗函数 炸裂函数

hive sql 行列转换 开窗函数 炸裂函数 准备原始数据集 学生表 student.csv 讲师表 teacher.csv 课程表 course.csv 分数表 score.csv 员工表 emp.csv 雇员表 employee.csv 电影表 movie.txt 学生表 student.csv 001,彭于晏,1995-05-16,男 002,胡歌,1994-03-20,男 003,周杰伦,…

阿里云服务器 手动搭建WordPress(CentOS 8)

前提条件 已创建Linux操作系统的ECS实例,并且手动部署LNMP环境,具体操作,请参见手动部署LNMP环境(CentOS 8)。本教程使用的相关资源版本如下。 实例规格:ecs.c6.large 操作系统:公共镜像CentO…

qt 重载信号,使用““方式进行connect()调用解决方案

问题 在Qt中,重载的信号默认是无法使用&这种方式调用的。 因为&只能绑定到一个具体的信号,而重载的信号名称相同,编译器无法确定要绑定哪一个信号。 解决方案 如果非要使用&绑定重载的信号,可以使用函数指针进行转…

《2020年最新面经》—字节跳动Java社招面试题

文章目录 前言:一面:01、Java基础知识答疑,简单概述一下?02、倒排索引了解吗?使用Java语言怎么实现倒排?03、详细讲解一下redis里面的哈希表,常用的Redis哈希表命名有哪些,举例说明其…

战神传奇【我本沉默精修版】win服务端+双端+充值后台+架设教程

搭建资源下载:战神传奇【我本沉默精修版】win服务端双端充值后台架设教程-海盗空间

spark性能调优 | 默认并行度

Spark Sql默认并行度 看官网,默认并行度200 https://spark.apache.org/docs/2.4.5/sql-performance-tuning.html#other-configuration-options 优化 在数仓中 task最好是cpu的两倍或者3倍(最好是倍数,不要使基数) 拓展 在本地 task需要自己设置&a…

【算法挨揍日记】day29——139. 单词拆分、467. 环绕字符串中唯一的子字符串

139. 单词拆分 139. 单词拆分 题目描述: 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 解题思路&am…

Python3.7+PyQt5 pyuic5将.ui文件转换为.py文件、Python读取配置文件、生成日志

1.实际开发项目时,是使用Qt Designer来设计UI界面,得到一个.ui的文件,然后利用PyQt5安装时自带的工具pyuic5将.ui文件转换为.py文件: pyuic5 -o mywindow.py mywindow.ui #先是py文件名,再是ui文件名样式图 QT5 UI&am…

《向量数据库指南》——2023云栖大会现场,向量数据库Milvus Cloud成关注焦点

近期,广受关注的2023 云栖大会正式收官,来自全球各地的开发者集聚一堂,共同探索 AI 时代的更多可能性。 云栖大会是由阿里巴巴集团主办的科技盛宴,是中国最早的开发者创新展示平台。据悉,今年云栖大会的主题为“计算,为了无法计算的价值”,共吸引了全球 44 个国家和地区…

BGP联盟和团体属性实验

目录 一、实验拓扑 二、实验要求 三、实验步骤 1、IP地址配置 2、ospf配置 3、BGP建邻 4、宣告网段 5、配置团体属性 一、实验拓扑 二、实验要求 1、按照图示配 IP 地址,R2,R3,R4,R5分别配 Loopbacke 口地址作为OSPF的Ro…