【个人博客搭建】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
相关推荐
新手上路狂踩坑40 分钟前
Android Studio的笔记--BusyBox相关
android·linux·笔记·android studio·busybox
stm 学习ing2 小时前
HDLBits训练3
c语言·经验分享·笔记·算法·fpga·eda·verilog hdl
尘觉2 小时前
算法的学习笔记—扑克牌顺子(牛客JZ61)
数据结构·笔记·学习·算法
bohu833 小时前
sentinel学习笔记1-为什么需要服务降级
笔记·学习·sentinel·滑动窗口
初学者7.4 小时前
Webpack学习笔记(3)
笔记·学习·webpack
bohu835 小时前
sentinel学习笔记5-资源指标数据统计
笔记·sentinel·statisticslot
璞~5 小时前
MQTT 课程概览 (学习笔记)02
笔记·学习
小王爱吃月亮糖6 小时前
C++进阶-1-单继承、多继承、虚继承
开发语言·c++·笔记·学习·visual studio
小王爱吃月亮糖6 小时前
补充--C++的项目结构和管理
数据结构·c++·笔记·学习
柳鲲鹏15 小时前
jiangdg/AndroidCamera关闭摄像头流程
笔记