經過幾個晚上的大量查閱資料,終于讓我給在阿裡雲上部署成功了hexo部落格,雖說hexo部落格在靜态資源多的情況下加載比較慢,但還是值得學習的一個部落格架構,因為之前就已經在github上部署過hexo,但通路時太慢了,是以這次部署在雲端。廢話不多說,直接上教程。
本地 Hexo 安裝及初始化
- 首先必須在本地的Windows環境下搭建好部落格,本地能通路就行。可以按照我之前寫的教程來搭建。 https://blog.csdn.net/qq_41684621/article/details/103259804
雲端伺服器配置
- 在阿裡雲上Centos7.X鏡像中一般都自帶git工具,但版本都比較低,不影響。可以檢視其版本:

如果沒有Git,可以使用yum來安裝
yum install git
- 建立一個專門管理部落格除root以外的使用者,如:
useradd git
修改使用者權限:
chmod 740 /etc/sudoers
vim /etc/sudoers
找到這個位置添加下面這句話
git ALL=(ALL) ALL
儲存的時候可以直接用強制儲存指令:
wq!
設定git使用者的密碼,
passwd git
- 為本地的 hexo_blog 配置一個部署靜态檔案的遠端倉庫。
建立私有 Git 倉庫,在 /var/repo/ 下,建立一個名為 hexo_static 的裸倉庫(bare repo)
如果沒有 /var/repo 目錄,需要先建立;然後修改目錄的所有權和使用者權限,之後 git 使用者都具備/var/repo 目錄下所有新生成的目錄和檔案的權限。
此時為root使用者登入
mkdir /var/repo/
chown -R git:git /var/repo/
chmod -R 755 /var/repo/
然後,執行如下指令:
cd /var/repo/
git init --bare hexo_static.git
配置 Nginx 托管檔案目錄
- 建立 /var/www/hexo 目錄,用于 Nginx 托管。
mkdir -p /var/www/hexo
和上一步類似,這裡也需要修改目錄的所有權和權限
chown -R git:git /var/www/hexo
chmod -R 755 /var/www/hexo
然後,修改 Nginx 的 配置檔案。關于nginx的安裝請通路我寫的這篇博文:
https://blog.csdn.net/qq_41684621/article/details/102934590首先把自己的已經備案号的域名解析,如:
我安裝nginx的目錄為/www/server/nginx,再進入nginx目錄裡的conf目錄,裡面有個nginx.conf配置檔案
cd /www/server/nginx/conf
vim nginx.conf
打開檔案後,在server裡添加如下:
server {
listen 80;
server_name www.yunxdr.top yunxdr.top;
index index.html index.htm;
root /var/www/hexo;
}
或者也可以再添加一個server,把serv_name改為解析好的二級域名即可。
之後,重裝nginx配置,此時必須為root使用者執行以下操作:
cd /www/server/nginx/sbin
nginx -s reload
- 建立 Git 鈎子
接下來,在雲伺服器上的裸倉庫 hexo_static 建立一個鈎子,在滿足特定條件時将靜态 HTML 檔案傳送到 Web 伺服器的目錄下,即 /var/www/hexo
在自動生成的 hooks 目錄下建立一個新的鈎子檔案:
vim /var/repo/hexo_static.git/hooks/post-receive
在該檔案中添加兩行代碼,指定 Git 的工作樹(源代碼)和 Git 目錄(配置檔案等)。
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo_static.git checkout -f
儲存并退出檔案,并讓該檔案變為可執行檔案。
chmod +x /var/repo/hexo_static.git/hooks/post-receive
至此,雲服務端的配置基本結束。
完成本地Windows下 Hexo 配置
- 修改 Hexo 部分預設配置,這是我本地的目錄檔案,hexo部落格的檔案夾名稱為blog,如:
其中,_config.yml 為 Hexo 的主配置檔案。我們首先修改部落格的 URL 位址。
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://www.yunxdr.top # 沒有綁定域名時填寫伺服器的實際 IP 位址。
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:
接下來,修改 default_layout,該字段位于在 Writing 部分。将其從 post 修改為 draft ,表示每篇博文預設都是草稿,必須經過釋出之後才能在部落格站點上通路。
# Writing
new_post_name: :title.md # File name of new posts
default_layout: draft # 原來的值是 post
titlecase: false # Transform title into titlecase
- 建立部落格草稿并釋出,這裡簡單示範通過 Hexo 建立博文草稿,并釋出的過程。
執行如下指令,建立第一篇博文。
hexo new 我的第一篇在阿裡雲上部署的hexo博文
會看到類似如下輸出:
在本地通過自己熟悉的編輯器,編輯博文。這裡,把本文的内容寫入第一篇部落格中
---
title: 我的第一篇在阿裡雲上部署的hexo博文
date: 2019-12-12 03:31:48
tags:
- Centos
- Hexo
categories:
- Hexo
comments: true
---
## hexo部落格在阿裡雲上部署成功
然後,通過如下指令釋出部落格:
hexo publish 我的第一篇在阿裡雲上部署的hexo博文
輸出類似下面這樣:
部落格推送到伺服器之後,就可以在網站上通路了。
- 通過 Git 部署
繼續編輯 _config.yml 檔案,找到 Deployment 部分,按照如下情況修改:
deploy:
type: git
repo: [email protected]:/var/repo/hexo_static
branch: master
repo:Centos使用者@雲伺服器IP:雲伺服器上建立的裸倉庫
儲存并退出檔案。
之後,需要安裝一個 Hexo 包,負責将部落格所需的靜态内容發送到設定好的 Git 倉庫。
npm install hexo-deployer-git --save
安裝好後可以測試部署:
hexo generate && hexo deploy
期間會提示輸入 git 使用者的登入密碼。成功之後的輸出大緻如下:
之後通路:
http://hexo.xdr630.top/