Hexo博客搭建

本文最后更新于:2023年3月23日 上午

〇、前景提要

1,查看搭建效果:

闪闪の小窝

2,事前准备:

你需要有一台服务器,Hexo博客搭建可以本地做好再传到GitHub或者其他CDN上进行部署,但是本文讲解的是基于服务器的搭建

本文基于CentOS 8.5 64位,其他操作系统请注意修改对应关键字

阿里云最近有活动,可以看看:
云服务器 ECS 1核1G S6 0.9元/月起
最近也有小活动

一、环境配置

1,安装Git-core

简简单单没什么问题,一句解决

1
sudo yum install git-core

2、安装Node.js

(1)安装

centos下安装nodejs的三种种方式
根据这个老哥的方法三:yum安装
控制台中输入以下两条命令即可

1
curl -sL https://rpm.nodesource.com/setup_14.x | bash -
1
yum install -y nodejs

查看安装是否成功

1
2
3
4
[root@Yui ~]# node -v
v10.9.0
[root@Yui ~]# npm -v
6.2.0

(2)踩的坑

其实这个在nodejs的官方文档也有提到,我也有看到,但是我不知道ubunt、debian跟centos之间的区别,不敢直接用,直到看到这个老哥的博客。

1
curl -sL https://rpm.nodesource.com/setup_10.x | bash -

一开始没认真看这语句的意义,就无脑复制粘贴用上,然后下一步安装hexo的时候:

1
2
3
4
5
6
7
8
/usr/bin/hexo -> /usr/lib/node_modules/hexo-cli/bin/hexo
npm WARN notsup Unsupported engine for hexo-util@2.5.0: wanted: {"node":">=12.4.0"} (current: {"node":"10.24.1","npm":"6.14.12"})
npm WARN notsup Not compatible with your version of node/npm: hexo-util@2.5.0
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/hexo-cli/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

+ hexo-cli@4.3.0
added 57 packages from 51 contributors in 13.23s

我才意识到,我这安装的是10.x版本的,对应语句的

1
2
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs

刚好看到官方GitHub页面最新版是17.x所以我想安装17的,被告知此版本不支持centos,因为hexo说建议版本是12.x,所以我刚输入命令想安装13.x的时候,它给我20s时间做个决定,上次安装10.x的时候也有这个提示but,是的,我没认真看:

最终我安装了他们recommend的14.x版本……
总结:要认真看提示!不能因为是英文就偷懒!

二、Hexo安装

1,安装Hexo

(1)安装

之后再次输入命令安装Hexo

1
npm install -g hexo-cli

(2)其他

以下为日志输出:

1
2
3
/usr/bin/hexo -> /usr/lib/node_modules/hexo-cli/bin/hexo
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/hexo-cli/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

有两个警告,一搜:fsevents是苹果系统的可选依赖,windows用户可忽略此类警告。
Linux跟macOS有关系,但我选择也跟着忽视了,希望不会成为日后的坑。

2,初始化Hexo

(1)初始化

接下来在/usr/local下新建一个blog文件夹(我另外一台服务器叫hexoblog是为了日后再来个wp不会乱,命名强迫症了属于是)

1
mkdir /usr/local/blog

随后进入目录

1
cd /usr/local/blog

执行初始化命令

1
hexo init

然后

1
npm install

(2)执行

安装以后,执行 Hexo:

1
2
hexo g #生成静态文件
hexo s #启动服务器

其他命令-官方文档:
指令|Hexo
将 Hexo 所在的目录下的 node_modules 添加到环境变量之中即可直接使用 hexo <command>

1
echo 'PATH="$PATH:./node_modules/.bin"' >> ~/.profile

三、Hexo主题安装

1,主题安装、Hexo基础配置

(1)主题安装

到这就差不多结束了,剩下的可以按照自己的喜好添加主题文件,并且按照文档做就行
主题推荐:
Hexo博客主题
除了这些还有伊莉雅什么的,可自行百度,我就懒得截图了

(2)Hexo基础配置

参考官方文档:
配置|Hexo

2,让Hexo长期后台运行

安装好自己喜欢的主题文件后,需要开始让hexo跑起来,但是hexo s在你退出命令行的时候就关闭了,或者在执行的时候你不能做其他事情,所以根据hexo 长期后台运行这里的内容,利用pm2使其长期后台运行:

(1)安装pm2(进程保护)

首先,我们需要安装pm2

1
npm install -g pm2

(2)新建脚本

进到博客的根目录/usr/local/blog,新建一个文件:hexo_run.js

1
2
cd /usr/local/blog
vi hexo_run.js

vim使用教程请参考:阿里云-vim教程

1
2
3
4
5
6
7
8
9
10
//run
const { exec } = require('child_process')
exec('hexo server',(error, stdout, stderr) => {
if(error){
console.log('exec error: ${error}')
return
}
console.log('stdout: ${stdout}');
console.log('stderr: ${stderr}');
})

启动这个进程服务

1
2
cd /usr/local/blog
pm2 start hexo_run.js

就可以使得hexo常驻后台了。

3,生成静态文件

因为Hexo是静态博客,所以每次进行配置修改、文章上传/修改后都需要停止当前hexo服务,重新生成新的静态文件,再重新部署hexo服务
步骤:

(0)修改配置文件/上传修改博客

修改配置文件,你找到配置文件修改后保存再重新hexo g即可
修改或者上传博客,记得到/usr/local/blog/source/_posts中更新md文件哦,不过不同的主题可能有不同的配置,以主题配置要求为准
这一步在Hexo运行期间都可运行,记得修改后要hexo g一下就行,如果出现缓存导致更新不及时记得hexo clean

(1)查看Hexo服务运行进程号

1
pm2 list

输出:

1
2
3
4
5
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
id │ name │ mode │ ↺ │ status │ cpu │ memory │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0 │ hexo_run │ fork │ 0 │ online │ 0% │ 27.1mb │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘

(2)停止当前hexo服务

即停止我们之前运行的hexo_run.js,根据pm2进程id停止

1
pm2 delete 0

(3)重新生成新的静态文件

注意:万物基础都在于blog文件夹中,因此别忘了要进去文件夹再执行命令

1
cd /usr/local/blog
1
hexo g

如果出现缓存导致更新不及时记得

1
2
hexo clean
hexo g

(4)重新部署Hexo服务

1
2
cd /usr/local/blog
pm2 start hexo_run.js

4,查看Hexo博客

Hexo默认部署在4000端口,所以浏览器地址栏输入
https://你的主机ip:4000/
即可浏览效果
如果有域名则
https://你的域名:4000/
如果你希望不加端口号,那去自学一下nginx

四、博客效果展示

闪闪の小窝
点击前往
博客首页
首页文章展示


Hexo博客搭建
https://moechun.fun/2022/06/10/Hexo博客搭建/
作者
Knight Kilito
发布于
2022年6月10日
更新于
2023年3月23日
许可协议