日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手把手教你搭建Hexo博客

發布時間:2023/12/16 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手把手教你搭建Hexo博客 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

導讀|很多開發者搭建自己的博客,會選擇現有的博客系統方案,比如:Wordpress、Hexo和Halo等。其中Hexo博客作為全靜態博客,沒有數據庫、對服務器資源消耗也極低,而且可定制化程度極高。本文將帶領各位開發者基于Lighthouse輕量服務器快速搭建Hexo博客。

Hexo博客是一個基于Nodejs開發的一套博客系統。借助Hexo,開發者可以把自己的Hexo配置和Markdown文章,編譯為HTML、JavaScript、CSS的存靜態資源。exo對每片文章都有生成.html文件和真實DOM元素,而不是Vue在非預渲染和非SSR模式下的Hash或History路由模式。

舉個例子,這是Hexo的配置文件:

. ├── _config.fluid.yml # 主題配置文件 ├── _config.yml # Hexo配置文件 ├── node_modules ├── package-lock.jso ├── package.json ├── scaffolds ├── source # 用戶核心文件 └── themes # 主題文件

開發者使用Hexo命令,可以生成public文件夾。內部就是可以發布的靜態文件了:

. ├── _config.fluid.yml ├── _config.yml ├── db.json ├── node_modules ├── package-lock.json ├── package.json ├── public # 我們Hexo構建的靜態 ├── scaffolds ├── source └── themes

public內:

準備工具

現在教程正式開始,首先看看我們需要準備什么?

本地:一臺安裝了Node.js和Git的電腦,操作系統隨意(Windows、macOS和Linux均可)。

服務器:一臺Lighthouse(建議使用Linux系統,e.g. Debian、CentOS)

可選:CDN內容分發節點、一個域名

如果你本地并沒有安裝Git,Windows用戶參考:https://git-scm.com/download/win;macOS和Linux可以直接使用軟件包管理器安裝。

如果你本地并沒有Node.js,那么我個人推薦安裝NVM(多版本Node.js管理器),參考教程:

https://cloud.tencent.com/developer/article/1812323

CDN內容分發節點是可選配置,使用騰訊云CDN節點,可以輕易緩存Hexo和圖床資源,加速用戶上網體驗,并且減緩Lighthouse帶寬壓力。值得注意的是,使用騰訊云CDN需要備案域名。

Lighthouse部分,各位開發者請自行前往官網購置。

服務器,均指任意一臺Lighthouse服務器,配置水平也沒有指定要求。服務器系統建議選擇Linux服務器,我選擇的是Debian10。

服務器初始化

首先,各位開發者要進行服務器的初始化(點擊文末閱讀原文,查看教程)。我們在本地SSH連接了服務器:


環境準備

之后,我們給服務器安裝依賴和應用:

1)寶塔環境

剛剛我們已經成功SSH登錄服務器,之后就是安裝寶塔鏡像:

之后,記得去服務器后臺放行8888端口:

2)Git:用于本地Hexo和圖床推送

服務器上直接使用軟件包管理其安裝:

# Debian apt install git -y # CentOS yum install git -y

用寶塔安裝腳本安裝過程中,會自動在服務器上安裝Git環境。

3)Nginx:用于Web服務器,即發布Hexo打包的靜態博客和作為圖床。

Nginx可以說是一個優秀的高并發服務器。因為使用寶塔面板,所以在安裝好寶塔面板后,進入寶塔面板選擇安裝Nginx即可:

創建網站

我們使用寶塔創建兩個網站文件夾:

blog:用于存放Hexo打包的public文件(后續有由本地git push)

imageHost:用于存放圖片(也就是我們的圖床文件夾,后續也由本地push)比如:

使用寶塔的可視化Nginx,創建Nginx配置文件。設置文件夾權限:

創建Git

我們本地Hexo打包為public靜態資源,需要使用git的git push推送到服務器,由服務器的Nginx進行網站展示。圖床同理。我們需要在服務器上配置Git,包括:創建Git用戶、創建Git倉庫、修改Git工作空間。

1)創建Git用戶

專門創建git用戶,用于使用Git: # 當前是root用戶,創建git用戶 useradd git # 給創建的git用戶設置密碼 passwd git

之后創建git用戶的“家”:

# 用root用戶給git用戶建個家 mkdir /home/git # 交房給git chown git:git /home/git -R

使用su - git切換到git用戶,準備后續操作。

2)創建Git倉庫

之后,我們切換到了git用戶,創建blog的文件夾:

mkdir -p ~/mySource/myBlog cd ~/mySource/myBlog git init --bare

用同樣的方法,創建imageHost的文件夾:

mkdir -p ~/mySource/myImageHost cd ~/mySource/myImageHost git init --bare

3)創建Git倉庫

創建的是裸倉庫,沒有工作空間。所以我們需要指向工作空間到上文創建的網站文件夾:

# 當前是git用戶,創建receive鉤子 vim ~/mySource/myBlog/hooks/post-receive

追加內容如下,注意替換--work-tree和--git-dir地址為你的地址:

git --work-tree=/www/wwwroot/myHexo/blog --git-dir=/home/git/mySource/myBlog checkout -f

最后,添加執行權限:

chmod +x ~/mySource/myImageHost/hooks/post-receive

同理,imageHost圖床文件夾也一樣:

vim ~/mySource/myImageHost/hooks/post-receive

追加內容:

git --work-tree=/www/wwwroot/myHexo/imageHost --git-dir=/home/git/mySource/myImageHost checkout -f

添加執行權限:

chmod +x ~/mySource/myImageHost/hooks/post-receive

到此,服務器上的操作,基本完成。接下來是本地操作。

部署Hexo

部署Hexo很簡單,總的有三步:初始化Hexo、運行Hexo、打包推送到服務器。

1)初始化Hexo

首先,確保本地已經安裝Node.js:

之后全局安裝Hexo:

npm install -g hexo

之后,創建一個文件夾,并使用hexo init進行初始化:

2)運行Hexo

運行Hexo很簡單,只需要:

hexo s

你可能會收到Node.js的版本問題警告,不過影響不大。如果提示hexo s找不到,可以使用npm install hexo-server --save進行安裝,再運行hexo s即可。

之后,我們使用瀏覽器即可訪問我們的hexo:

具體的Hexo博客如何書寫,這里不過多說。接下來,我們看看如何部署。

3)打包推送到服務器

我們把Hexo打包并部署到服務器。首先在hexo blog目錄內安裝推送插件:

npm install hexo-deployer-git --save

打開hexo blog目錄下的_config.yml文件,編輯(可以用記事本、Xcode、HBuilderX),deploy后,類型填git,然后補上其他內容:

之后,進行public文件夾生成和推送:

hexo g -d

查看文件夾:

瀏覽器訪問看看:

部署圖床

部署圖床也很簡單,總的有三步:創建本地圖床倉庫、添加圖片、推送到服務器。

1)創建本地圖床倉庫

創建的方法很簡單,用過Git的用戶應該都比較熟悉。如果你沒用過,看了下面的內容也可以輕易理解。

# 創建一個空文件夾mkdir imageHost# 進入文件夾cd imageHost# git初始化git init# 設置遠程倉庫地址(記得將12*.***.*16替換為你的服務器)git remote add origin git@12*.***.*16:/home/git/mySource/myImageHost

2)添加圖片

打開文件夾,之后往里面丟圖片即可:

3)推送到服務器

最后,推送到服務器,也是基本的git操作:

# 添加本地所有文件 git add . # 打一個commit git commit -a -m "update" # 提交到遠程地址 git push --set-upstream origin main

當然,也就第一次需要git push --set-upstream origin main指定,后續直接git push就可以了:

如果出現推送錯誤,出現remote: fatal: You are on a branch yet to be born問題,一般是遠程倉庫(服務器上的裸倉庫)上的倉庫不一樣。有個個最簡單的方法,修改服務器上裸倉庫的post-receive,添加:

之后重新本地git pull即可:

到寶塔看看服務器上的圖片:


Nginx反代

剛剛我們其實只創建了一個文件夾,但是創建了兩個倉庫。怎么融合在一起呢?方法很多,你可以用域名去解析兩個網站文件夾。

但是如果你只有一個域名,可以使用Nginx反向代理圖床文件夾為博客文件夾的子文件夾。舉個例子,我們博客根目錄下的/imagehost文件夾,我想專門用于代理圖床文件夾,只需要打開Nginx的設置,設置反向代理即可:

之后,任何/imagehost開頭的文件,就會被Nginx代理到/www/wwwroot/myHexo/imageHost文件夾下去查找。舉個例子,比如我們想拿到0.jpg這張圖片:

只需要在博客域名下,加上/imagehost前綴即可訪問:

這樣,在寫博客的時候,就方便了。

最終效果:加上一點點的美化和一點點的文章輸出,并且部署到Lighthouse就是我的博客:

Q&A

1)如何備份網站

備份Hexo博客很簡單,在Hexo文件夾內:

. ├── _config.fluid.yml ├── _config.yml ├── db.json ├── node_modules ├── package-lock.json ├── package.json ├── public ├── scaffolds ├── source └── themes

排除node_modules、public文件夾打包壓縮即可。在新的電腦上,解壓并hexo g -d即可重新打包并部署到服務器。備份圖床就更簡單了。實際上你只需要下載服務器上的圖床文件夾即可。或者說打包本地的圖床文件夾。因為這兩個相當于是個同步盤。

2)Lighthouse跑的動Hexo么

完全可以,Lighthouse就算使用最低配置的版本,也可以跑Hexo。但是,如果你想拿Lighthouse搭建Wordpress,建議使用2C 4G配置以上的版本;否則建議數據庫另外搭建。

希望本文對你有幫助~

騰訊工程師技術干貨直達:

1、如何不改一行代碼,讓Hippy啟動速度提升50%?

2、內存泄露?騰訊工程師2個壓箱底的方法和工具

3、一文讀懂Go函數調用

4、萬字避坑指南!C++的缺陷與思考(下)

點個?在看展示你的技術態度

總結

以上是生活随笔為你收集整理的手把手教你搭建Hexo博客的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。