Categories: None.

Hexo 是一個快速,簡潔,高效的博客框架,Hexo 使用 Markdown 解析文章,並在幾秒鐘內就可以生成帶有精美主題的靜態網頁.

計劃選擇

可選擇的

通常,個人博客有兩個主要選擇。

  1. 選擇商業博客解決方案,例如國內短書和國外平台 Medium 是優秀的博客平台.

  2. 要構建獨立博客,您需要購買域名,購買VPS,構建VPS環境等等.有很多事情需要拋,但同時您可以學到很多.

與第二個一樣,獨立博客可以完全控制自己.沒有限制,只是折騰,您可以學到很多東西.

框架選擇

當然,構建博客並不意味著您從0開始編寫每個頁面.

實際上,開箱即用的博客程序很多.

只需安裝,配置和選擇主題即可直接使用它.

常見的博客平台具有以下內容:

HexoGhost 可以使用 Markdown 編寫文章,這非常適合程序員.

WordPress 非常強大,並且具有大量的插件和主題,但是對於一個簡單的博客而言,個人覺得它不適合輕量級博客實在是太重了.

Hexo 使用本地保存源文件並將其呈現為靜態頁面部署.

Ghost 使用數據庫服務器查詢渲染

我個人喜歡 Hexo .

部署計劃

Hexo 生成的靜態文件可以通過支持 Html 的任何空間或服務器進行訪問.

主要選項有以下兩個

  1. GitHub Pages
  2. VPS

GitHub Pages 用於介紹託管在 GitHub 上的項目,但是由於他的空間是免費且穩定的,因此構建博客非常好.

每個帳戶只能有一個用於個人主頁的存儲庫,該存儲庫的名稱必須為 username/username.github.io 這是一種特殊的命名約定.您可以在 http://username.github.io 訪問您的個人主頁.

Github Pages 的好處是完全免費的.構建並部署到教程. Hexo + Github Pages建立了一個個人獨立博客. 我的個人計劃是第二個,部署到我自己的服務器上.

安裝 Hexo

更新包

1
apt-get update

安裝依賴

Hexo 依賴於 Node.jsGit 需要首先安裝.

安裝 Git

1
apt install git-core -y

查看 Git 版本

1
git --version

安裝 Node.js

使用以下命令安裝 Node.js

使用一鍵式命令或程序包管理器安裝 Node.Js

以下分別介紹.這是安裝 Node.Js 的程序包管理器

官方來源:https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions-enterprise-linux-fedora-and-snap-packages

Github來源:https://github.com/nodesource/distributions

執行以下命令安裝 curl

1
apt install curl

安裝 Node.js v11.x 版本

1
2
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejs

查看 Node.js 版本

1
node --version

查看 Npm 版本

1
npm --version

安裝 Hexo

1
npm install hexo-cli -g

Hexo 安裝目錄中初始化博客,它可以是您想要的任何名稱.

1
hexo init hexo

轉到博客根目錄並安裝相關的插件依賴項等。

1
2
cd hexo
npm install

安裝完成後,您需要使用以下命令.

1
2
hexo g	#在Source目錄中渲染文件並詢問靜態頁面
hexo s #在本地運行服務器以查看博客效果

然後您可以 http://localhost:4000/ 檢查運行效果.

cy-hexo

發表文章,替換主題等,請參閱文章Hexo + Github Pages建立了一個個人獨立博客

配置服務器環境

服務器環境我選擇使用 Debian + Nginx 環境.

必須首先執行 cd 才能將目錄切換到根目錄,然後才能執行以下操作.

安裝 Nginx

Nginx 這是一個高性能的 HTTP 和反向代理服務器以及 IMAP/POP3/SMTP 代理服務器。

執行命令以安裝 Nginx

1
apt-get install nginx

啟動 Nginx

Nginx 安裝完成後需要手動啟動

1
service nginx start

配置完成後,訪問瀏覽器服務器 IP ,如果可以看到以下界面,說明操作成功.

cy-nginx

順便說一下 Nginx 配置參數

start nginx

1
service nginx start

stop nginx

1
service nginx stop

other parameters

1
reload restart start status stop

精简 Nginx 多余文件

可以删除以下文件

1
2
/etc/nginx/sites-available/default
/etc/nginx/sites-enabled/default

配置虛擬主機

Nginx 默認情況下,網頁文件位於 /srv/ 目錄中.

為了方便起見,我們在 /srv/ 目錄中為每個站點創建一個文件夾.

1
2
3
rm -rf /var/www/html
mkdir -p /srv/hexo
chmod -R 755 /srv/hexo

創建虛擬主機配置文件

如果需要部署 SSL 請首先將 SSL 證書和密鑰上傳到 VPS 中您喜歡的文件夾中,然後填寫以下代碼

进入 /etc/nginx/sites-available 目录,建立一份 Conf 配置,文件名为 hexo

1
nano /etc/nginx/sites-available/hexo

打开 Hexo 配置文件,将默认的 Server 配置改为如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name lia.im www.lia.im;
if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
#ssl on;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_stapling on;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA";
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
location / {
root /srv/hexo;
index index.html index.htm index.php;
}
}

之后进入 /etc/nginx/sites-enabled 目录,建一个指向上述配置文件的软链接:

1
ln -s /etc/nginx/sites-available/hexo /etc/nginx/sites-enabled/hexo

重新啟動 Nginx 服務器以使服務器設置生效

1
service nginx restart

Hexo 部署到服務器

配置服務器環境

配置 Git 用戶名和郵箱

1
2
git config --global user.name "Your user.name"
git config --global user.email "You user.email"

創建一個空白的 Git 倉庫並設置 git hook

1
2
3
cd ~
mkdir hexo.git && cd hexo.git
git init --bare

/root/hexo.git/hooks 中創建一個配置文件 post-receive 並填寫以下代碼

1
2
3
4
5
6
7
8
#!/bin/bash
GIT_REPO=/root/hexo.git #Relative position of the git library
TMP_GIT_CLONE=/tmp/hexo
PUBLIC_WWW=/srv/hexo #Relative position of the root directory
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}

授予腳本執行權限

1
2
cd /root/hexo.git/hooks
chmod +x post-receive

配置本機環境

Blog 目錄中運行以下命令以安裝 Git 部署工具.

1
2
cd && cd hexo
npm install hexo-deployer-git --save

修改博客的配置文件 _config.yml 並修改 deploy 選項:

1
2
3
4
deploy:
type: git
repo: root@IP:/root/hexo.git
branch: master

然後運行 hexo clean && hexo generate && hexo deploy 將本地渲染的網頁部署到服務器.

PS.

安装 RSS 插件

1
npm install hexo-generator-feed

Hexo 根目录下的 _config.yml文件中,添加以下配置

1
2
3
4
5
6
7
8
#RSS
plugin:
- hexo-generator-feed
#Feed Atom
feed:
type: atom
path: atom.xml
limit: 20

在主题目录下的 _config.yml 目录下,添加如下配置

1
rss: /atom.xml

reference

Enjoy