使用Nginx+Hexo光速搭建部落格並實現伺服器自動部署

ruling_fong發表於2019-02-16

第一步 本地安裝hexo並初始化專案

安裝hexo非常簡單,但是安裝之前需要確保已經安裝了git和node.js

1.安裝git

1.Windows使用者可以直接下載安裝檔案安裝
2.Mac使用者可以下載安裝檔案,或者使用homebrew安裝

brew install git

3.Linux使用者使用命令(Ubuntu, Debian)

sudo apt-get install git-core

或命令(Fedora, Red Hat, CentOS)

sudo yum install git-core

2.安裝node

安裝node使用nvm

wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

安裝之後需要重啟終端
然後安裝node

nvm install stable

不過由於某種眾所周知的原因,安裝過程可能非常緩慢,可以考慮科學上網,另外也可以下載安裝檔案進行安裝,或原始碼檔案進行編譯安裝,node中文網 這裡下載似乎比較快。
另外,Windows使用者直接下載安裝檔案安裝最快捷,安裝時記得勾選Add to Path

3.安裝hexo並初始化專案

先檢查一下git和node是否安裝好了

git --version
node --version

如果正常顯示git和node的版本則可以繼續下面的操作了,否則請先進行第一步的操作

好的,繼續

npm install -g hexo-cli

安裝成功後切換到你想要建立部落格的目錄,然後執行

hexo init <folder>
cd <folder>
npm install

其中folder為部落格目錄名稱,換成你想要的名稱即可
至此,第一步已經完成。

第二步 配置伺服器

1.配置Nginx

ssh連線你的伺服器,參考這裡
筆者使用的是騰訊雲的cvm,這裡便以此為例(這裡使用root使用者),參考只看第一點即可
安裝Nginx

yum install -y nginx

啟動Nginx服務

service nginx start

測試Nginx伺服器

wget http://127.0.0.1

能正常獲取inde.html檔案說明Nginx安裝成功

2.建立git倉庫

安裝git,參考第一步
新建git使用者

adduser git

建立裸倉,參考

cd /home/git
git init --bare hexo.git
chown -R git:git hexo.git

將本地機器上的ssh公鑰填入/home/git/.ssh/authorized_keys檔案(若還未建立公鑰,參考這裡
在本機

cat ~/.ssh/id_rsa.pub

複製公鑰
在伺服器

nano /home/git/.ssh/authorized_keys

貼上公鑰,Ctrl+x儲存,輸入y,然後回車即可

配置Nginx

查詢Nginx配置檔案

nginx -t

筆者的配置檔案位於/etc/nginx/nginx.conf,參照這裡在server一項中新增

listen       80;
root   /home/git;
server_name  localhost;

location / {
  index  index.html index.htm;
}

注意,筆者是將git使用者目錄作為Nginx伺服器根目錄,這裡隨讀者喜好,但是要注意檔案許可權問題。
儲存後重啟Nginx伺服器

service nginx restart

第三步實現自動部署

在第二步建立的裸倉中(即hexo.git資料夾中),找到hooks目錄下的post-update.sample,重新命名為post-update
填入如下程式碼 參考這裡

#!/bin/sh
git --work-tree=/home/git --git-dir=/home/git/hexo.git checkout -f

修改許可權使其可執行

chmod +x post-update

接下來,在第一步中建立的hexo專案目錄,編輯_config.yml,修改deploy項,類似如下

deploy:
  type: git
  repo: git@server:/home/git/hexo.git
  branch: master

將server改為你的伺服器地址
在hexo專案目錄中安裝hexo-deployer-git

npm install hexo-deployer-git --save

好了,現在執行

hexo new <title>

title換成文章標題
然後執行

hexo g -d

g和d是generate和deploy的簡寫
另外你可以直接編輯或新建hexo專案目錄下./source/_posts目錄裡的md檔案(至於Markdown語法,看看這裡吧)
這時訪問你的伺服器試試吧!!!

【完】

原載於數星|部落格

相關文章