天天看點

Hexo部落格部署在阿裡雲上

經過幾個晚上的大量查閱資料,終于讓我給在阿裡雲上部署成功了hexo部落格,雖說hexo部落格在靜态資源多的情況下加載比較慢,但還是值得學習的一個部落格架構,因為之前就已經在github上部署過hexo,但通路時太慢了,是以這次部署在雲端。廢話不多說,直接上教程。

本地 Hexo 安裝及初始化

雲端伺服器配置

  • 在阿裡雲上Centos7.X鏡像中一般都自帶git工具,但版本都比較低,不影響。可以檢視其版本:
Hexo部落格部署在阿裡雲上

如果沒有Git,可以使用yum來安裝

yum install git           
  • 建立一個專門管理部落格除root以外的使用者,如:
useradd git           

修改使用者權限:

chmod 740 /etc/sudoers
vim /etc/sudoers           

找到這個位置添加下面這句話

git        ALL=(ALL)     ALL           
Hexo部落格部署在阿裡雲上

儲存的時候可以直接用強制儲存指令:

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

首先把自己的已經備案号的域名解析,如:

Hexo部落格部署在阿裡雲上

我安裝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,如:
Hexo部落格部署在阿裡雲上

其中,_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博文           

會看到類似如下輸出:

Hexo部落格部署在阿裡雲上

在本地通過自己熟悉的編輯器,編輯博文。這裡,把本文的内容寫入第一篇部落格中

---
title: 我的第一篇在阿裡雲上部署的hexo博文
date: 2019-12-12 03:31:48
tags:
    - Centos
    - Hexo
categories:
    - Hexo
comments: true
---

## hexo部落格在阿裡雲上部署成功
           

然後,通過如下指令釋出部落格:

hexo publish 我的第一篇在阿裡雲上部署的hexo博文           

輸出類似下面這樣:

Hexo部落格部署在阿裡雲上
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 使用者的登入密碼。成功之後的輸出大緻如下:

Hexo部落格部署在阿裡雲上

之後通路:

http://hexo.xdr630.top/
Hexo部落格部署在阿裡雲上