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

目录

一、本地构建Hexo

(一) 安装前提

1. Node.js

2. Git

3. Hexo

(二) 初始化Hexo

1. 初始化博客目录

2. 配置网站基本信息

(三) 主题配置

1. 选择主题

2. 下载主题

(四) 本地启动Hexo

1. 生成静态文件

2. 启动服务

二、部署

(一) 部署到Github Pages

1. 新建仓库

2. 配置Pages服务

3. 提交Hexo到GitHub Pages

(二) 部署到云服务器

1. 创建blog用户

2. 配置git远程仓库

3. 配置Nginx服务

4. 提交Hexo到远程仓库

三、附录

(一) 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/bashgit --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.gitbranch: 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/657494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源博客项目Blog .NET Core源码学习(8:EasyCaching使用浅析)

开源博客项目Blog使用EasyCaching模块实现缓存功能,主要是在App.Framwork项目中引用了多类包,包括内存缓存(EasyCaching.InMemory)、Redis缓存(EasyCaching.CSRedis),同时支持多种序列化方式&am…

机器学习复习(4)——CNN算法

目录 数据增强方法 CNN图像分类数据集构建 导入数据集 定义trainer 超参数设置 数据增强 构建CNN网络 开始训练 模型测试 数据增强方法 # 一般情况下,我们不会在验证集和测试集上做数据扩增 # 我们只需要将图片裁剪成同样的大小并装换成Tensor就行 test_t…

【国产MCU】-CH32V307-GPIO控制:输入与输出

GPIO控制:输入与输出 文章目录 GPIO控制:输入与输出1、GPIO简单介绍2、驱动API介绍3、GPIO配置代码实现3.1 GPIO配置为输出3.2 GPIO配置为输入CH32V307的GPIO口可以配置成多种输入或输出模式,内置可关闭的上拉或下拉电阻,可以配置成推挽或开漏功能。GPIO口还可以复用成其他…

一文掌握SpringBoot注解之@Component 知识文集(8)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

人工智能(pytorch)搭建模型23-pytorch搭建生成对抗网络(GAN):手写数字生成的项目应用

大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型23-pytorch搭建生成对抗网络(GAN):手写数字生成的项目应用。生成对抗网络(GAN)是一种强大的生成模型,在手写数字生成方面具有广泛的应用前景。通过生成…

类和对象 第六部分 继承 第一部分:继承的语法

一.继承的概念 继承是面向对象的三大特性之一 有些类与类之间存在特殊的关系,例如下图: 我们可以发现,下级别的成员除了拥有上一级的共性,还有自己的特性,这个时候,我们可以讨论利用继承的技术,…

【前端素材】bootstrap3 实现地产置业公司source网页设计

一、需求分析 地产置业公司的网页通常是该公司的官方网站,旨在向访问者提供相关信息和服务。这些网页通常具有以下功能: 公司介绍:网页通常包含有关公司背景、历史、核心价值观和使命等方面的信息。此部分帮助访问者了解公司的身份和目标。 …

LabVIEW船舶自动识别系统

在现代航海领域,安全高效的船舶自动识别系统对于保障航行安全和提高船舶管理效率非常重要。介绍了利用LabVIEW软件开发的一个船舶自动识别系统,该系统通过先进的数据采集和信号处理技术,显著提升了传统自动识别系统的性能。 这个船舶自动识别…

代理IP在游戏中的作用有哪些?

游戏代理IP的作用是什么?IP代理软件相当于连接客户端和虚拟服务器的软件“中转站”,在我们向远程服务器提出需求后,代理服务器首先获得用户的请求,然后将服务请求转移到远程服务器,然后将远程服务器反馈的结果转移到客…

【lesson1】高并发内存池项目介绍

文章目录 这个项目做的是什么?这个项目的要求的知识储备和难度?什么是内存池池化技术内存池内存池主要解决的问题malloc 这个项目做的是什么? 当前项目是实现一个高并发的内存池,他的原型是google的一个开源项目tcmalloc&#xf…

江西省考报名照不能成功上传的原因

江西省考报名照需要根据以下要求生成: 1、近期6个月,免冠证件照 2、照片背景白背景 3、照片文件jpg格式,20-100kb 4、照片像素大小,295x413像素 5、照片必须使用审核工具审核后才能上传

【Java】内存溢出和内存泄露的区别

目录 概念 内存溢出分类 内存泄漏分类 发生场景以及解决方法 内存溢出 内存泄漏 解决方法 这道题是面试常考的,一定要区分好区别,我之前就是直接认为内存溢出就是内存泄漏了 概念 内存溢出:是指程序在申请内存时,没有足够…

React18-模拟列表数据实现基础表格功能

文章目录 分页功能分页组件有两种接口参数分页类型用户列表参数类型 模拟列表数据分页触发方式实现目录 分页功能 分页组件有两种 table组件自带分页 <TableborderedrowKey"userId"rowSelection{{ type: checkbox }}pagination{{position: [bottomRight],pageSi…

海外云手机对于亚马逊卖家的作用

近年来&#xff0c;海外云手机作为一种新型模式迅速崭露头角&#xff0c;成为专业的出海SaaS平台软件。海外云手机在云端运行和存储数据&#xff0c;通过网页端操作&#xff0c;将手机芯片放置在机房&#xff0c;通过网络连接到服务器&#xff0c;为用户提供便捷的上网功能。因…

Spring Boot 中文件上传

Spring Boot 中文件上传 一、MultipartFile二、单文件上传案例三、多文件上传案例四、Servlet 规范五、Servlet 规范实现文件上传 上传文件大家用的最多的就是 Apache Commons FileUpload&#xff0c;这个库使用非常广泛。Spring Boot3 版本中已经不能使用了。代替它的是 Sprin…

苍穹外卖项目可以写的简历和如何优化简历

文章目录 重点写中规写添加自己个性的项目面试会问道的问题 我是一名双非大二计算机本科生&#xff0c;希望我的分享对你有帮助&#xff0c;点赞关注不迷路。 简历编写一直是很多人求职人的心病&#xff0c;我自己上学期有一门课程是去校内企业面试&#xff0c;当时我就感受出…

MySQL库表操作 作业

题目&#xff1a; 1. sql语句分为几类?2. 表的约束有哪些,分别是什么,设置的语法分别是什么?3. 做出班级表,学生表的E-R图,数据库模型图,以及核心的sql语句. 1. MySQL致力于支持全套ANSI/ISO SQL标准。在MySQL数据库中&#xff0c;SQL语句主要可以划分为以下几类: > DD…

【三维重建】三角化

三角化要解决的问题是&#xff1a; 已知两个相机的内参K、K、相机之间的旋转平移矩阵R、t以及匹配点p、p&#xff0c;如何求得P点的三维坐标&#xff1f; 线性解法

彻底解决 MAC Android Studio gradle async 时出现 “connect timed out“ 问题

最近在编译一个比较老的项目&#xff0c;git clone 之后使用 async 之后出现一下现象&#xff1a; 首先确定是我网络本身是没有问题的&#xff0c;尝试几次重新 async 之后还是出现问题&#xff0c;网上找了一些方法解决了本问题&#xff0c;以此来记录一下问题是如何解决的。 …

【Tomcat与网络5】再论Tomcat的工作过程与两种经典的设计模式

前面两篇&#xff0c;我们重点分析了Tomcat的容器和连接器的基本设计&#xff0c;今天我们来看一下两个机构如何在service的调度下进行协同工作的。 目录 1.模板模式与Tomcat的重用性设计 2.观察者模式与Tomcat可扩展性设计 1.模板模式与Tomcat的重用性设计 首先&#xff0…