【个人博客搭建】Hexo安装部署

目录

一、本地构建Hexo

[(一) 安装前提](#(一) 安装前提)

[1. Node.js](#1. Node.js)

[2. Git](#2. Git)

[3. Hexo](#3. Hexo)

[(二) 初始化Hexo](#(二) 初始化Hexo)

[1. 初始化博客目录](#1. 初始化博客目录)

[2. 配置网站基本信息](#2. 配置网站基本信息)

[(三) 主题配置](#(三) 主题配置)

[1. 选择主题](#1. 选择主题)

[2. 下载主题](#2. 下载主题)

[(四) 本地启动Hexo](#(四) 本地启动Hexo)

[1. 生成静态文件](#1. 生成静态文件)

[2. 启动服务](#2. 启动服务)

二、部署

[(一) 部署到Github Pages](#(一) 部署到Github Pages)

[1. 新建仓库](#1. 新建仓库)

[2. 配置Pages服务](#2. 配置Pages服务)

[3. 提交Hexo到GitHub Pages](#3. 提交Hexo到GitHub Pages)

[(二) 部署到云服务器](#(二) 部署到云服务器)

[1. 创建blog用户](#1. 创建blog用户)

[2. 配置git远程仓库](#2. 配置git远程仓库)

[3. 配置Nginx服务](#3. 配置Nginx服务)

[4. 提交Hexo到远程仓库](#4. 提交Hexo到远程仓库)

三、附录

[(一) Git 443解决](#(一) Git 443解决)


参考文档:

  1. Hexo

一、本地构建Hexo

(一) 安装前提

1. Node.js

  1. 进入node.js官网,下载exe安装包
  2. 双击安装包,默认点击下一步进行安装(确保勾选Add to PATH选项)
  3. 安装成功后进入终端输入npm --version显示版本号则说明安装成功
  4. 💡若执行失败,则手动将node.js执行文件目录配置到系统环境变量,默认为:C:\Program Files\nodejs

2. Git

  1. 进入git官网,下载exe安装包
  2. 双击安装包,默认点击下一步进行安装(确保勾选Add to PATH选项)
  3. 安装成功后进入终端输入git --version显示版本号则说明安装成功
  4. 💡若执行失败,则手动将git执行文件目录配置到系统环境变量,默认为:C:\Program Files\Git\cmd

3. Hexo

终端输入npm install -g hexo-cli,安装Hexo

安装成功后输入hexo --version显示版本号则说明安装成功

(二) 初始化Hexo

1. 初始化博客目录

进入终端,在目标目录下运行以下命令:

# blog为自定义目录名
hexo init blog
cd blog
npm install

构建完成后,目录结构如下:

.
├── _config.yml									# Hexo配置文件
├── package.json								# 应用程序信息
├── scaffolds										# 模板文件夹,用于存放新建文章时预设的模板
├── source											# 用户存放用户资源
|   ├── _drafts
|   └── _posts									# 文章列表,.md文件
└── themes											# 主题文件夹

2. 配置网站基本信息

编辑_config.yml文件,按需修改以下内容

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

(三) 主题配置

1. 选择主题

在主题列表选择主题:Themes | Hexo

💡 我这里使用:butterfly

2. 下载主题

在Hexo根目录下运行(二选一)

# 1. git clone
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly

# 2. gitee
git clone -b master https://gitee.com/immyw/hexo-theme-butterfly.git themes/butterfly

修改 Hexo 根目录下的_config.yml,把theme改为butterfly

theme: butterfly

(四) 本地启动Hexo

💡 hexo命令详细说明参见:指令 | Hexo

1. 生成静态文件

在 Hexo 根目录下,终端输入以下命令

hexo generate

# 也可简写为
hexo g

2. 启动服务

在 Hexo 根目录下,终端输入以下命令(默认启动服务为4000端口)

hexo server

# 也可简写为
hexo s

二、部署

(一) 部署到Github Pages

1. 新建仓库

登录GitHub后,点击号,选择New repository

输入username.github.io作为存储库名称。 将username替换为自己的 GitHub 用户名(飘红是因为我仓库已经建好了)

2. 配置Pages服务

进入刚创建好的仓库,点击上方Settings按钮

转到Pages页面,设置Source和选择对应构建分支

3. 提交Hexo到GitHub Pages

安装git提交依赖

npm install hexo-deployer-git --save

修改_config.yml文件中deployurl配置项,写入以下内容

# 根据实际地址填写
url: https://lswgg.github.io/
...
deploy:
  type: git
  # 根据实际地址填写
  repo: https://github.com/LsWGG/LsWGG.github.io.git
  # 设置为步骤2所选的构建分支
  branch: main

生成静态文件并上传到远程服务

hexo d -g

💡 如果提示port 443 after 21046 ms: Couldn't connect to server,则跳转附录查看解决方案。

通过访问Actions可查看pages构建详情,显示✅后即可访问服务

访问username.github.io查看新网站

(二) 部署到云服务器

1. 创建blog用户

使用root用户登录服务器终端后,输入以下命令:

# 1. 新建用户
adduser blog

# 2. 给blog用户配置密码
passwd blog
# 回车后输入密码

# 3. 给用户添加sudo权限
visudo
# 在root    ALL=(ALL)       ALL下一行填入以下内容
blog    ALL=(ALL)       ALL

# 4. 切换为blog用户
su blog

2. 配置git远程仓库

安装git和初始化远程仓库

# 1. 安装git
yum install git

# 2. 初始化远程仓库
cd ~ && git init --bare muzijia.git

创建git钩子,用于指定静态文件存放目录(路径依据自己仓库位置调整)

# 1. 创建静态文件目录
mkdir -p ~/www/blog

# 2. 创建钩子脚本
vim ~/muzijia.git/hooks/post-receive

# 2. 写入以下内容
#!/bin/bash

git --work-tree=/home/blog/www/blog --git-dir=/home/blog/muzijia.git checkout -f

# 3. 给钩子脚本添加可执行权限
chmod +x ~/muzijia.git/hooks/post-receive

3. 配置Nginx服务

配置Nginx

# 1. 安装Nginx(需用sudo或切换为root用户)
sudo yum install nginx

# 2. 新建Nginx配置文件
sudo vim /etc/nginx/conf.d/blog.conf

# 3. 输入以下内容(按需端口和root)
server {
    listen       8080;
    server_name  _;
    root         /home/blog/www;

    location /blog {
        index        index.html;
    }

    error_page 404 /404.html;
    location = /404.html {
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
}

# 4. 重启Nginx使配置生效
sudo systemctl restart nginx.service 

4. 提交Hexo到远程仓库

安装git提交依赖

npm install hexo-deployer-git --save

修改_config.yml文件中deploy配置项,写入以下内容

deploy:
  type: git
  # 根据实际地址填写
  repo: blog@59.110.123.184:/home/blog/muzijia.git
  branch: master

构建静态文件并上传到远程服务

hexo d -g

浏览器输入公网IP地址,访问站点

💡 若使用的是云服务器,则需要在相应平台安全组中开放相应入口规则

三、附录

(一) Git 443解决

如果提示Failed to connect to github.com port 443 after 21046 ms: Couldn't connect to server,则按以下步骤手动配置Git代理:

打开设置 > 网络与Internet > 查找代理

根据当前系统代理IP和端口号,修改Git代理

# 注意修改成自己的IP和端口号
git config --global http.proxy http://127.0.0.1:7890 
git config --global https.proxy http://127.0.0.1:7890
相关推荐
Charles Ray26 分钟前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
重生之我在20年代敲代码27 分钟前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
我要吐泡泡了哦1 小时前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎
骑鱼过海的猫1231 小时前
【tomcat】tomcat学习笔记
笔记·学习·tomcat
贾saisai3 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
北岛寒沫4 小时前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习
烟雨666_java4 小时前
JDBC笔记
笔记
GEEKVIP4 小时前
Android 恢复挑战和解决方案:如何从 Android 设备恢复删除的文件
android·笔记·安全·macos·智能手机·电脑·笔记本电脑
铁匠匠匠5 小时前
从零开始学数据结构系列之第六章《排序简介》
c语言·数据结构·经验分享·笔记·学习·开源·课程设计
Moliay6 小时前
【资料分析】刷题日记2
笔记·公考·行测·常识·资料分析