1. 程式人生 > >Hexo 個人部落格搭建

Hexo 個人部落格搭建

老早就想搭建一個屬於自己的個人部落格了,之前也弄過一個,後臺到前端完全原生自主編寫,可是終究還是太年輕,很多東西都不會,也不懂得堅持,慢慢就荒廢了。加上幾次的伺服器變更,再加上工作沒精力打理,之前的個人部落格已經完全荒廢了。經過2018年一年時間的沉澱,決定再次搭建一個屬於自己的部落格了,之前一直在 部落格園 潛水,平時也沒怎麼輸出,記錄幾個隨筆。2019年,決定好好地寫一下部落格。計劃每週寫一篇吧,以周為單位,不斷吸取新的東西,整理輸出。

開始前

本篇主要記錄如何將 hexo 部落格部署到服務端,因此 git 和 node 的安裝和配置需要自行準備。

作業系統&環境

  • 本地:Windows10
  • ECS伺服器:Ubuntu18.04(阿里雲)
  • 安裝 git
  • 安裝 node

Hexo 安裝

$ npm install -g hexo-cli
$ hexo init <folder>
$ cd <folder>
$ npm install

部署到伺服器

hexo 安裝和配置好主題之後便是日常的寫作釋出了,可是要怎麼才能比較優雅地寫作及釋出呢?參考了網上的做法以及考慮到後期自己需要 DIY 的需求,決定在本地環境生成部落格靜態檔案,然後通過 git 推送到伺服器 git 倉庫,再設定 git-hooks 來進行自動部署。具體思路如圖:

hexo-deploy

伺服器端配置

由於自個的 Linux 和 git 都不是很好,因此在這一塊耗了很長時間(在此立個flag,要認真研究一下!)。好啦,下面將會是一堆命令操作,用慣 Windows 可能會不大適應~_~不要緊,按順序一步一步來。

mkdir -p /var/www/blog // 建立存放部落格靜態檔案的目錄
useradd git // Linux增加一個 git 使用者
passwd git // 設定 git 使用者的密碼
su git // 切換到 git 使用者
cd /home/git/ // 如果沒有 /home/git 目錄則自行建立
mkdir repos && cd repos
git init --bare blog.git // 建立一個 git 裸庫
cd blog.git/hooks
vi post-receive // 建立hook鉤子函式,並輸入以下內容

post-receive:

#!/bin/sh
git --work-tree=/var/www/blog --git-dir=/home/git/repos/blog.git checkout -f

儲存完畢後繼續以下命令

chmod +x post-receive // 賦予執行許可權
exit // 退出 git 使用者
chown -R git /home/git/repos/blog.git // 將 blog.git 資料夾及資料夾下所有檔案所有者設定為 git 使用者
chown -R git ~/.ssh // 原理同上句,如果沒有 .ssh 資料夾請自行建立

上面就是服務端所要的配置,在執行命令的時候可能會報錯,可以參考文末“參考”部分解決。

Windows 本地配置

開啟 "Git Bash" 命令列工具,執行以下命令

ssh-copy-id -i C:/Users/yourname/.ssh/id_rsa.pub [email protected]_ip // 將公鑰複製到伺服器上
ssh [email protected]_ip //測試是否無需密碼登入

如果沒有報錯就可以開啟 hexo 部落格專案,否則按照報錯提示去找解決方法。
在部落格跟目錄開啟 _config.yml 主配置檔案找到 deploy 屬性進行以下配置:

deploy:
  type: git
  repo: [email protected]_ip:/home/git/repos/blog.git
  branch: master

然後在部落格根目錄執行以下命令

hexo g // 生成靜態頁面檔案
hexo d // 部署到伺服器

至此個人部落格已經上傳到ECS雲伺服器上了,至於要怎麼給外界訪問,就要使用 Nginx、Apache等 web 伺服器軟體咯。具體配置,待續。。。

參考