记录一下部署Hexo博客在Debian 服务器上的过程
2024-03-08 05:14:46

1. 更新系统包

1
sudo apt update sudo apt upgrade -y

2. 安装Node.js

这里可以选择随意的版本如21.x

1
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs

3. 安装Git

Git是管理Hexo博客源码的必需工具。

1
sudo apt install git -y

4. 安装Hexo

安装Hexo前,请确保已经安装了Node.js和npm。接下来,使用npm全局安装Hexo。

1
sudo npm install -g hexo-cli

5. 设置Hexo项目

首先,选择一个位置创建你的Hexo项目。然后,使用Hexo命令初始化博客。

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

6. 配置Hexo

1 编辑项目跟目录下的_config.yml文件来配置Hexo,例如更改主题、修改博客标题、描述等。

  • title: 网站的标题,将显示在网站的标题栏和其他位置。
  • subtitle: 网站的副标题,通常用于进一步描述网站的内容或主题。
  • description: 对网站的简短描述,用于SEO和搜索引擎结果中显示。
  • keywords: 网站的关键词,用于SEO和搜索引擎优化。
  • author: 网站的作者或所有者的名称。
  • language: 网站使用的语言,通常采用ISO 639-1标准的语言代码。
  • timezone: 网站所在地区的时区,通常采用IANA时区数据库中的时区名称。
1
2
timezone: Asia/Shanghai #设置时区
language: zh-CN #设置语言

2 创建图片以及文件目录

1
2
cd ~/myblog
mkdir images && mkdir images

通常,Hexo中的图片可以放在source目录下的任何地方。你可以在source目录下创建一个images文件夹,然后将你的图片放在其中。例如:

1
2
3
4
5
source/
└── images/
├── image1.jpg
├── image2.png
└── ...

一旦你将图片放在了source/images目录下,Hexo会自动将其复制到生成的静态网站中的相应位置。你可以在文章或页面中使用相对路径引用这些图片。例如,如果你有一篇文章位于source/_posts目录下,你可以在文章中这样引用图片:

![图片描述](../images/image1.jpg)

这将在文章中插入名为image1.jpg的图片,并将其路径设置为相对于文章所在位置的路径。

1
2
3
4
5
source/
└── files/
├── file1.pdf
├── file2.zip
└── ...

[文件链接描述](../files/file1.pdf)

3 .安装插件

全局搜索

1
npm install hexo-generator-search --save

根目录配置文件_config.yml(非主题配置文件)下添加:

1
2
3
4
search:
path: search.xml
field: post
content: true

站点地图

1
npm install hexo-generator-sitemap --save

根目录配置文件_config.yml(非主题配置文件)下添加:

1
2
sitemap:
path: sitemap.xml

http://localhost:4000/sitemap.xml

7. 生成站点并预览

在你的Hexo项目目录中,运行以下命令来生成静态文件:

1
hexo generate

然后,启动Hexo服务器:

1
hexo server

默认情况下,这将在http://localhost:4000启动一个本地服务器。由于这是在远程服务器上,你可能需要通过一个具体的IP地址或域名访问它,确保你的防火墙和网络设置允许从外部访问4000端口。

8.安装主题

这里以orange为列

1
git init
1
git submodule add https://github.com/zchengsite/hexo-theme-oranges.git themes/oranges

在 hexo 博客项目根目录下找到_config.yml文件,修改其中theme字段为主题名oranges

1
theme: oranges

统计JS目录~/myblog/themes/oranges/layout/_partial/footer.ejs
更多设置请参考 OrangeREADME.md

9.发布文章

创建新文章

1
hexo new "文章标题"

或者直接准备好的md文件放入cd ~/myblog/source/_posts

添加元数据(Front-matter):文章顶部的元数据区域允许你指定关于文章的信息,例如标题、日期、分类和标签。例如:

1
2
3
4
5
6
7
8
9
---
title: 文章标题
date: 2024-03-07 20:00:00
categories: 分类
tags:
- 标签1
- 标签2
---
....文章正文

上线文章

1
hexo clean && hexo generate && hexo server

10 使用PM2来管理Hexo服务器的后台运行

1
npm install pm2 -g

创建一个js脚本

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const { exec } = require('child_process');



// 设置Hexo的根目录

const hexoRoot = '~/myblog';



// 执行 Hexo 相关命令

const executeHexoCommands = () => {

return new Promise((resolve, reject) => {

exec(`cd ${hexoRoot} && hexo clean && hexo generate && hexo server`, (error, stdout, stderr) => {

if (error) {

reject(`执行出错: ${error}`);

return;

}

console.log(`stdout: ${stdout}`);

console.error(`stderr: ${stderr}`);

resolve();

});

});

};



// 启动Hexo服务器

const startHexoServer = async () => {

try {

await executeHexoCommands();

console.log('Hexo服务器已启动!');

} catch (err) {

console.error(err);

}

};



// 执行脚本

startHexoServer();

然后,在Hexo博客的根目录下,使用以下命令启动你的.js脚本:

1
pm2 start run.js --name "hexo-script"

这将使用PM2启动你的脚本,并将其命名为”hexo-script”(可以选择其他名称)

之后启动可以使用该命令启动

1
pm2 start hexo-script#启动
1
pm2 stop hexo-script#停止

在系统启动时自动启动这个脚本,可以运行以下命令:

1
pm2 startup

按照命令行中给出的指示,执行相应的命令,以便PM2能够在系统启动时自动启动。

通过这样设置,你的Hexo博客将由PM2管理,你可以轻松地运行你的脚本并确保它在系统重启后自动启动

上一页
2024-03-08 05:14:46
下一页