0%

Hexo + Nginx 安装

今天无意间看到使用Hexo搭建博客的教程,觉得的Hexo比起Wordpress非常的轻量。因为我自己有一台vps,所以就尝试着使用nginx + hexo的方式,搭建自己的博客。本文介绍了Hexo博客的搭建过程。

注意:
1. 这里我搭建的环境是 Ubuntu Server 20.04.1
2. 我这里是将nginx 与 hexo放在同一个服务器上

Hexo的安装

官方的中文文档肯定是要看的(0.0)。
Hexo中文文档

安装nodejs

这里我们从 NodeSource 中安装 Node.js 和 npm
因为官方的apt源里面的nodejs版本不是最新的

使用root用户,登录到vps,执行以下命令

1
2
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
apt install nodejs

然后就可以使用node --version以及npm --version查看版本了

npm换源

使用不换源的npm安装hexo,能让你等的怀疑人生

1
npm config set registry https://registry.npm.taobao.org

Hexo安装

当你看到这里,说明所有的准备工作都已经完成了。现在我们就可以使用npm安装Hexo了。

执行以下代码

1
npm install -g hexo-cli

安装完成后,执行以下命令,hexo将会在指定文件夹中新建所需要的文件。

1
2
3
4
5
6
# folder就是你要放置hexo文件的地方
# 没有使用root用户的小伙伴们,要注意文件夹的权限问题

hexo init <folder>
cd <folder>
npm install

新建完成后,指定文件夹的目录如下:

1
2
3
4
5
6
7
8
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes

安装完成后,进入到hexo文件中,开始修改_config.yml文件,主要修改与博客网站标题相关的选项。

选项 含义 参考
title 网站标题
subtitle 网站副标题
description 网站描述
keywords 网站的关键词。支援多个关键词。 搜索引擎爬取的关键字
author 您的名字 我的填写的是XiaoBai
language 网站使用的语言。对于简体中文用户来说,使用不同的主题可能需要设置成不同的值,请参考你的主题的文档自行设置,常见的有 zh-Hans和 zh-CN。 zh-CN
timezone 网站时区。Hexo 默认使用您电脑的时区。请参考 时区列表 进行设置,如 America/New_York, Japan, 和 UTC 。一般的,对于中国大陆地区可以使用 Asia/Shanghai。 Asia/Shanghai。

暂时修改这么多就差不多了。如果大家还想详细的了解Hexo的配置文件,可以参考官方文档

然后在hexo的文件目录下(就是init的那个文件目录)下,执行hexo s --debug,开始运行hexo。然后访4000端口,就可以看到Hexo的默认界面了。如果没有出现网页的话,可以在控制台上看到错误输出。

nginx的安装

编译安装

在vps上面,我们通过将Hexo的public文件夹软连接到Nginx的html文件夹中,这样我们就可以通过访问80、443端口,直接访问Hexo生成的静态网页。

这里使用编译安装Nginx的方法,安装最新版本的nginx。

参考博客

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 安装编译环境
apt install openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev make gcc

# 进入src目录
cd /usr/local/src

# 下载文件
wget http://nginx.org/download/nginx-1.19.0.tar.gz

#解压、进入到文件夹中
tar -xvzf nginx-1.19.0.tar.gz
cd nginx-1.19.0/

#添加用户和组
groupadd www
useradd -g www www

# 编译准备
./configure --prefix=/usr/local/nginx \
--user=www \
--group=www \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/usr/local/nginx/nginx.pid \
--lock-path=/var/lock/

# 编译安装
make && make install


# 修改配置文件
vim /etc/nginx/nginx.conf
# 注意将pid前面的#删除,并且将后面的地址改为 /usr/local/nginx/nginx.pid;(注意分号)

到这里nginx就已经安装完成了。下面我们把nginx.server写入到systemd中.

1
2
# 新建文档
vim /lib/systemd/system/nginx.service

将以下内容复制到nginx.server中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

# 重新读取配置
systemctl daemon-reload

# 可以通过systemctl命令启动、查看nginx的状态
systemctl start nginx.service
systemctl status nginx.service

Nginx显示Hexo的静态网页

  1. 执行以下命令查看nginx目录
    1
    nginx -t
  2. 修改配置文件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # 打开文件
    vim /etc/nginx/nginx.conf

    # 修改的地方

    server {
    listen 80;
    # 这里改为你的域名或者IP地址
    server_name xxx.xxx.xxx.xxx;

    location / {
    # 因为我的服务器暂时只有一个博客,这里我就直接将html整个文件夹设置为Hexo的静态网页目录
    root html;
    index index.html;
    }

    # 重启服务
    systemctl restart nginx.server
  3. 建立软连接
    1
    2
    # 注意将/opt/Hexo换为你的hexo目录 /usr/local/nginx换为你的nginx目录
    ln -s /opt/Hexo/public /usr/local/nginx/html
  4. 最后访问80端口,应该就能看到Hexo的博文了。