Hexo新手入门

Hexo是一款基于Node.js的静态博客生成器,以轻量、高效、易拓展的特点深受开发者喜爱。本文将从本地环境搭建开始,一步步教你实现Hexo博客的服务器部署,并拓展置顶、百度收录等实用功能,全程附详细命令及注意事项,助力你快速搭建专属个人博客。

一、本地环境搭建:Hexo初始化实操

搭建Hexo前需确保本地已安装Node.js(自带npm包管理器),可通过 node -vnpm -v 命令验证环境是否可用。若未安装,建议前往Node.js官网下载LTS版本安装。

1
2
3
4
5
6
7
8
9
10
11
12

# 1. 全局安装Hexo脚手架工具,-g表示全局可用
npm install hexo-cli -g

# 2. 初始化Hexo项目,<folder>替换为你的项目文件夹名称(如hexo-blog)
hexo init <folder>

# 3. 进入项目目录
cd <folder>

# 4. 安装项目依赖包,完成后即可启动本地服务
npm install

初始化完成后,可执行 hexo s(s即server)启动本地预览服务,访问 http://localhost:4000 即可查看初始博客效果。若需停止服务,按 Ctrl+C 即可。

参考资料:Hexo官方文档

二、插件管理:安装与卸载基础操作

Hexo的强大之处在于丰富的插件生态,可通过npm快速安装或卸载插件,核心命令如下:

1
2
3
4
5
6

# 安装插件,package-name替换为具体插件名称(如hexo-deployer-git)
npm install package-name --save

# 卸载插件,package-name替换为具体插件名称
npm uninstall package-name --save

说明:--save 参数会将插件信息写入项目的package.json文件,便于后续项目迁移或依赖重装。

三、核心部署:Git联动服务器全流程

将Hexo博客部署到自己的服务器,需完成本地与服务器的SSH免密连接配置、Git仓库搭建及部署脚本设置,步骤如下:

3.1 前置准备:本地与服务器SSH配置

目的:实现本地环境免密码登录服务器,为后续部署铺路。

3.1.1 本地环境操作

1
2
3
4
5
6
7

# 生成SSH公钥(若已生成可跳过,默认存放在~/.ssh目录下)
ssh-keygen

# 进入本地Hexo项目目录,安装Git部署插件
cd hexo
npm install hexo-deployer-git --save

3.1.2 服务器环境操作

1
2
3
4
5
6
7
8
9
10
11

# 1. 登录服务器后,生成SSH公钥(若已生成可跳过)
ssh-keygen

# 2. 创建代码存储目录和网页根目录
mkdir code # 用于存放Git仓库
mkdir website # 用于存放静态博客文件(供服务器访问)

# 3. 授权目录权限,user:group替换为你的服务器用户名和用户组(如ubuntu:ubuntu)
chown -R user:group code
chown -R user:group website

3.1.3 本地公钥上传至服务器

两种方式可选,推荐第一种(简单高效):

1
2
3
4
5
6
7
8
9
10
11
12
13

# 方式1:通过ssh-copy-id命令自动上传(推荐)
ssh-copy-id user@ip # user替换为服务器用户名,ip替换为服务器公网IP

# 方式2:手动复制(适用于ssh-copy-id不可用的场景)
# 本地环境:查看并复制公钥内容
cat ~/.ssh/id_rsa.pub

# 服务器环境:编辑授权文件,粘贴本地公钥
nano ~/.ssh/authorized_keys

# 服务器环境:设置授权文件权限(必须为600,否则SSH连接会失败)
chmod 600 ~/.ssh/authorized_keys

3.1.4 连接测试

1
2
3

# 本地环境执行,若能免密码登录服务器则配置成功
ssh user@ip

3.2 开始部署:Git仓库与部署脚本配置

3.2.1 服务器:搭建Git裸仓库并配置钩子脚本

1
2
3
4
5
6
7
8
9
10

# 1. 进入代码存储目录,创建Git裸仓库(裸仓库仅存储版本信息,不存储实际文件)
cd code
git init --bare hexo.git

# 2. 进入Git仓库的hooks目录,创建post-receive钩子脚本
cd hexo.git/hooks

# 3. 编辑post-receive脚本(不存在则自动创建)
nano post-receive

在post-receive脚本中写入以下内容(/path 替换为服务器的实际目录路径,如 /home/ubuntu):

1
2
3

#!/bin/bash
git --work-tree=/path/website --git-dir=/path/code/hexo.git checkout -f

给脚本添加执行权限:

1
2

chmod +x post-receive

3.2.2 本地:配置Hexo部署信息

1
2
3
4

# 进入本地Hexo项目目录,编辑配置文件
cd hexo
nano _config.yml

在配置文件末尾找到deploy节点,修改为以下内容(替换对应参数):

1
2
3
4
5

deploy:
type: 'git'
repo: user@ip:/path/code/hexo.git # user:服务器用户名;ip:服务器公网IP;path:服务器code目录路径
branch: master

3.2.3 执行部署

1
2
3

# 清除本地缓存和已生成的静态文件(避免旧文件干扰),然后部署
hexo clean && hexo d # d是deploy的缩写,两者效果一致

3.3 部署注意事项(必看)

  • 确认website目录路径已配置到服务器Web服务(如Nginx、Apache)的根目录,确保网页可正常访问

  • 检查website和code目录的权限是否正确,避免因权限不足导致文件无法写入

  • 确认post-receive脚本已添加执行权限(chmod +x),否则部署后服务器不会自动更新文件

  • 验证本地与服务器的SSH免密连接是否正常,若连接失败会导致部署中断

  • 若SSH连接异常,可检查服务器/etc/sshd_config配置文件,确保相关参数正确后重启sshd服务(systemctl restart sshd)

四、实用功能拓展:置顶功能实现

Hexo默认不支持文章置顶,需通过安装对应插件实现,以下提供两种常用方案,可根据需求选择:

4.1 方案一:hexo-generator-index(简单易用,自带拓展)

1
2
3

# 安装插件
npm install hexo-generator-index --save

修改Hexo项目的scaffolds/post.md文件(文章模板文件),在末尾添加sticky参数:

1
2
3
4
5
6
7
8

---
title: {{ title }}
date: {{ date }}
tags:
categories:
sticky: # 置顶权重,数值越大置顶优先级越高(如sticky: 10)
---

说明:新建文章时,在Front-matter中添加sticky: 数值即可实现置顶,数值越大置顶位置越靠前。

4.2 方案二:hexo-generator-index-pin-top(功能更灵活)

1
2
3
4
5
6

# 1. 先卸载Hexo自带的hexo-generator-index(避免冲突)
npm uninstall --save hexo-generator-index

# 2. 安装该插件
npm install --save hexo-generator-index-pin-top

修改scaffolds/post.md文件,在末尾添加top参数:

1
2
3
4
5
6
7
8

---
title: {{ title }}
date: {{ date }}
tags:
categories:
top: # 置顶权重,数值越大置顶优先级越高(如top: 5)
---

可选优化:在文章详情页添加“置顶”标识(以Next主题为例),修改主题的post-meta相关模板文件:

1
2
3
4
5
6
7
8
9
10

<div class="post-meta">
{% if post.top %}
<span class="post-meta-item">
<i class="fa fa-thumb-tack" style="color: red"></i>
<font color=red>置顶</font>
</span>
{% endif %}
# 原有其他元信息(如日期、分类、标签)
</div>

4.3 方案三:hexo-generator-index2(备选)

该插件支持更多自定义配置,但本人尚未实际使用,感兴趣的可参考官方文档:hexo-generator-index2 GitHub地址

五、SEO优化:百度主动推送配置

通过百度主动推送插件,可将新发布的文章链接快速提交至百度搜索资源平台,提升文章收录速度。

5.1 安装推送插件

1
2

npm install hexo-baidu-url-submit --save

5.2 配置_config.yml文件

在Hexo项目的_config.yml中添加以下配置(参数需从百度搜索资源平台获取):

1
2
3
4
5
6

baidu_url_submit:
count: 10 # 每次提交最新的10个链接
host: garbo.me # 已在百度搜索资源平台验证的域名(需替换为你的域名)
token: your_token # 百度搜索资源平台申请的推送准入密钥(需替换为你的token)
path: file.txt # 存储新链接的文本文档路径,默认在项目根目录

5.3 关联部署流程

修改deploy配置,添加百度推送操作,实现部署时自动提交链接:

1
2
3
4
5
6

deploy:
- type: 'git'
repo: user@ip:/path/code/hexo.git
branch: master
- type: baidu_url_submitter # 新增百度推送部署项

说明:配置完成后,执行hexo clean && hexo d部署时,会自动将最新的链接提交至百度。