在 VPS 上搭建 Hexo 博客

本文以 Ubuntu 18.04 为例,介绍如何在 VPS 上搭建 Hexo 博客并进行管理。

请先参照 Ubuntu (Debian) 服务器的初始化配置 一文对服务器进行各种必要的配置。本文以 sammy 用户为例,进行博客的搭建,并默认已按初始化配置文章对服务器进行了配置。


安装 nodejs

NVM 的安装

1
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

设置环境变量:

1
2
3
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

安装 LTS 版

1
nvm install --lts

安装 Hexo

1
npm install hexo-cli -g

设置博客

1
2
3
4
mkdir ~/Sites/Blog
cd ~/Sites/Blog
hexo init
npm install

之后可对博客进行常规设置。

安装 hexo-admin

1
npm install hexo-admin --save

进行自定义配置。

设置服务

1
sudo vim /etc/systemd/system/hexo.service

添加如下内容,注意替换 sammy ,并且 hexo 的路径应该根据实际情况填写(whereis nodewhereis hexo):

/etc/systemd/system/hexo.service
1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=Hexo Server Service
After=network.target

[Service]
WorkingDirectory=/home/sammy/Sites/Blog
ExecStart=/home/sammy/.nvm/versions/node/v10.15.3/bin/node /home/sammy/.nvm/versions/node/v10.15.3/bin/hexo s -p 80
Restart=on-abort

[Install]
WantedBy=multi-user.target

启动服务:

1
2
sudo systemctl enable hexo
sudo systemctl start hexo

防火墙

1
sudo ufw allow 80

配置 hexo-admin

访问 http://localhost/admin/#/auth-setup ,其中 localhost 为 VPS 的 ip 地址或域名,根据提示设置管理员密码。

使用

http://localhost/admin/ 即为网站管理页面,可以在此发布文章。