囊個搭建自己的圖床

耳東Sir發表於2022-11-25

前言

相信喜歡寫部落格的童鞋都或多或少使用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

相關文章