前言

相信喜欢写博客的童鞋都或多或少使用markdown来写的博客,使用markdown很香,真的很香,但是写完了上传到网页上就犯难了,图片是以链接/路径插入进markdown文本里的,意味着图片还要一张一张的上传到网页。

这不能忍,所以需要用到图床,图床说白了就是上传图片,并且生成所有人都能访问的外部链接,这样我们用markdown写的博客就完整了。

现存的图床有免费的也有收费的,免费的缺点就是不稳定,或者完全挂掉,如果还没有备份的话,那可真上头,比如我使用的sm.ms这个。收费的呢,稳定,可控,但是对荷包不友好巴拉巴拉~

本文的重点就是自建图床,完全免费的有,收费的也有,typora的使用不在这里叙述。

接下来进入正题~

一,使用Github搭建免费图床

好处:免费,免费,免费

坏处:不稳定,可能让你的博客有时候会加载不出图片

1. 新建图床仓库

image-20221124161933666

2. 创建token 密匙

点击:头像 -> ①settings -> ②Developer settings -> ③Personal access tokens -> ④Tokens (classic) -> ⑤Generate new token -> ⑥Generate new token (classic)

image-20221124162736491

得到如下画面,继续~

image-20221124163124100

然后直接到底部点击image-20221124163229622就行了

得到如下红框里的东西,一定要复制保存下,此界面离开后就看不到了!!!

image-20221124164640939

3. 配置picgo的github插件

关于picgo是什么以及如何与Typora交互这里暂不做介绍

image-20221124163429396

配置解释:

设定仓库名:(你的账号ID)/(你的仓库名)

设定分支名:如果你创建的时候没有特别配置分支的话,一般都是 main

设定 token:就是上一个步骤生成的tokens

设定存储路径:必须以/结尾,会存储到你的仓库目录下的这个目录内

设定自定义域名:建议使用免费的cdn开头https://cdn.jsdelivr.net/gh/后面再接仓库名里的内容

点击确定,再点击设为默认图床,大功告成!

然后就可以比较愉快的使用免费图床了~

二,使用各大厂云OCS对象存储搭建图床

好处:很稳定,有些大厂还有免费的CDN,又快又好

坏处:收费的,具体看你使用哪些套餐。个人使用也不是贵到离谱那种。

这里是以腾讯云为例,其他的云基本相似。

随便百度一下云对象存储,就会出来一堆广告,看来没有对手的度娘也在疯狂摆烂了。

这里挑选其中一条,腾讯云的1块钱50G的对象存储(点我)

image-20221125093819148

声明:没有打广告,如果给腾讯云引了流,麻烦结一下广告费,蟹蟹~

好的,进入正题~

1. 创建存储桶

image-20221125094409225

然后配置基本信息

image-20221125094827230

然后一直下一步,再点创建。成功创建存储桶。

image-20221125095951508

记录下存储桶的名称,和所属地域的代号,如上图的红框部分,也就是 ap-guangzhou,后面会用到

2. 创建 API 秘钥

进入 【访问管理】 - 【访问秘钥】 - 【API 秘钥管理】(点此访问),会提示是否使用子账号管理,可根据实际需要进行选择,这里我们直接使用主账号进行创建

img

创建成功,将 APPIDSecretIdSecretKey 保存下来,非常重要,谨防外泄。

img

3. 配置PicGo插件

新版的PicGo插件列有自带腾讯云Cos插件,这里我们就不用下载了。

配置列表:

image-20221125100712053

这里选择V5,然后将之前步骤的相关参数填入进去,点击确定并且点击设为默认图床。

注意:存储路径必须以/结尾,否则就会变成上传图片的前缀。

测试一波先

image-20221125101353662

点击上传,发现已经成功上传啦

image-20221125101604796

到这就完成了~

三,使用云服务器搭建图床

好处:很稳定,很可控,自由度高,适合折腾

坏处:也是收费的,但是对于新人挺便宜的。再就是门槛稍微高一些,需要花时间精力

前提:

  • 有一个云服务器并且安装了宝塔面板
  • 在安装宝塔面板的时候一键安装了LNMP
  • 有一个有证书的域名并且正确解析到这个服务器的IP

网上很多大神都有制作轮子,我们拿来使用就行,下面介绍几个使用量最多的

1. 使用chevereto 自建图床

img

简介:

  • Chevereto 是一款自建图床程序

  • Chevereto 支持多用户系统、相册集、统一仪表板、HTML 可拖曳式上传、桌面版上传插件、多种外部存储(Amazon S3、Google Cloud、阿里云 OSS 等)、自定义主题、多语言、CDN 和自定义 API 等功能。

  • 程序本身收费,但有免费版,功能受限,个人使用也是足够的

  • 免费版 Chevereto 链接:https://github.com/rodber/chevereto-free

  • 更新频繁,当前最新版本 1.6.2

  • 官方网站:https://chevereto.com/

环境:

Chevereto 依赖环境 PHP,MySQL,Nginx
- 建议 PHP 版本7 以上
- MySQL 5.7 以上
- Nginx 1.2

新建网站

点击 网站 -> 添加站点

image-20221124172402242

点击提交

配置网站

点击刚才新建的站点

image-20221124172609386

配置SSL

将你此域名对应的证书的.key文件和.pem文件内容分别拷贝到下图左右,并点击保存。

ps: 域名证书是需要下载的,下载下来是一个压缩包,解压出来即可看到对应的格式的文件。

image-20221124172847249

刷新一下即可看到证书已部署

image-20221124173651529

配置源码

  • 建站调试成功后,删除目录下的 index.html404.html

  • 然后下载源码,推荐下载1.3.0的版本,版本太高会打开一片空白,原因没有深究,下载链接:https://github.com/rodber/chevereto-free/archive/refs/tags/1.3.0.zip

  • 将此链接使用文件中的远程下载,然后解压出来,将解压后的目录chevereto-free-1.3.0中的所有内容拷贝到你的网站目录下

  • 并且右键你的网站目录,给此目录并且包含子目录及文件的777权限

    给网站配置伪静态:

location / {
    if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } try_files $uri $uri/ /api.php; } location /admin { try_files $uri /admin/index.php?$args;
    }

image-20221124175320621

然后点击保存

然后到这里网站就配置完成了~

配置chevereto

浏览器打开你新建的网站,它会自动进入安装界面

如下是配置数据库信息

image-20221124175859592

将新建网站时的数据库信息填入那三个框就行,其他默认就好

image-20221124180200190

然后点击继续,进入到管理员配置

image-20221124180514677

点击安装,恭喜,已经可以用了~

ps: 如果英语不好的话,可以点击头像 -> settings -> Language -> 在下拉窗选择简体中文就好

配置PicGo的上传插件

点开PicGo的插件设置,搜索并且安装Chevereto Uploader

配置Chevereto Uploader

image-20221124182135752

这里只需要填两项:

Url:https://你的域名/api/1/upload

Key:按照如下配置拿到

image-20221124182605517

然后点击确定并且点击设为默认图床

开始享用吧!~

2. 使用EasyImage自建

image-20221124183723128

简介:

GitHub开源地址:https://github.com/icret/EasyImages2.0

文档地址:https://www.kancloud.cn/easyimage/easyimage/2625222

Demo地址:https://png.cm/

作者博客:https://blog.png.cm/

环境:

EasyImage 依赖环境 PHP,MySQL,Nginx 
- 建议 PHP 版本7 以上
- MySQL 5.7 以上
- Nginx 1.2
- PHP插件 Fileinfo

这里单独提一下安装fileinfo插件

image-20221124184701800

新建网站

点击 网站 -> 添加站点

image-20221124172402242

点击提交

配置网站

点击刚才新建的站点

image-20221124172609386

配置SSL

将你此域名对应的证书的.key文件和.pem文件内容分别拷贝到下图左右,并点击保存。

ps: 域名证书是需要下载的,下载下来是一个压缩包,解压出来即可看到对应的格式的文件。

image-20221124172847249

刷新一下即可看到证书已部署

image-20221124173651529

配置源码

  • 建站调试成功后,删除目录下的 index.html404.html

  • 然后下载源码,推荐下载最新的2.6.7的版本, 链接:https://github.com/icret/EasyImages2.0/archive/refs/tags/2.6.7.zip

  • 将此链接使用文件中的远程下载,然后解压出来,将解压后的目录EasyImages2.0-2.6.7中的所有内容拷贝到你的网站目录下

  • 并且右键你的网站目录,给此目录并且包含子目录及文件的777权限

  • 关闭放跨站

    image-20221124185511320

然后浏览器打开你新建的域名, 进入管理员用户配置

根据提示一步步来就好, 这个配置很简单

配置PICGO的上传插件

点开PicGo的插件设置,搜索并且安装Web Uploader

配置Web Uploader

image-20221124190509472

需要配置4个参数:

API地址:你的网站地址+/api/index.php,例:https://pic.xxxx.com/api/index.php

POST参数名:image

JSON路径:url

自定义Body:{"token":"8337edadadadd9c5899f3509b23657"},关于token怎么获得,如下图

image-20221124190926255

配置完成后,就可以愉快的上传了

3. 使用SFTP自建图床

  • 服务器配置比较简单,这里就不做详细介绍了,原理就是基于FTP/SFTP来实现的.
  • 然后就是PICGO部分也是安装一个SFTP插件,配置好服务器的域名地址和相关账号信息
  • 就可以愉快的使用了

4. 还有一些其他的

例如蓝空图床啥的,和1/2搭建的方式基本一致,这里不做赘述.

建议关闭网站的NGINX防火墙,除非你会配置规则,否则会出很多意想不到的问题

Q&A

Q: 为什么按照本文配置完后,输入我新建的网站域名打不开?

A: 检测一下域名是否有解析到这个服务器

Q:为什么网站刚开始能打开,但是我上传了一张图片后就打不开了

A:检查一下该网站是否开启了防火墙,并且你的IP被短暂的封禁掉了

Q:为什么网站能打开,能网页上传,但是使用PICGO就就上传不了

A:检查一下SSL证书是否有正确配置,并且查看PICGO的日志,就能很准确的知道是什么原因造成的

end

感谢阅读~

希望能帮到你~

see you~

码字不易,转载请注明原作者 ~ (from:https://erdong.work