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

news2024/11/16 1:52:55

目录

一、本地构建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/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

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

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

相关文章

线性代数------矩阵的运算和逆矩阵

矩阵VS行列式 矩阵是一个数表,而行列式是一个具体的数; 矩阵是使用大写字母表示,行列式是使用类似绝对值的两个竖杠; 矩阵的行数可以不等于列数,但是行列式的行数等于列数; 1.矩阵的数乘就是矩阵的每个…

4D毫米波雷达分类和工程实现

4D毫米波目标检测信息丰富,可获得目标3维位置信息、径向速度vr和rcs等,能够对目标准确分类。 4D毫米波和激光做好时空同步,可以用激光目标给4D毫米波做标注,提升标注效率。 1 激光用做4D毫米波分类真值 128线激光推理的结果作为4…

如何从视频中提取高清图片?可以这样截取

如何从视频中提取高清图片?从视频中提取高清图片可以方便我们制作各种用途所需的素材,如海报、社交媒体配图等。此外,高清图片的细节和色彩也更丰富,可以更好地满足我们的视觉需求。从视频中提取高清图片是一项需要技巧的任务&…

windows上使用anconda安装tensorrt环境

windows上使用anconda安装tensorrt环境 1 安装tensorrt1.1 下载最新的稳定的tensorrt 8.6.1(tensorrt对应的cuda、cudnn等版本是参考链接4)1.2 将tensorrt添加到环境变量1.3 安装tensorrt依赖1.4 安装Pycuda1.5 安装pytorch 2 测试2.1 测试TensorRT 样例(这个测试主要来源于参考…

InsideCli、OutsideCli-电源管理(23国赛真题)

2023全国职业院校技能大赛网络系统管理赛项–模块B:服务部署(WindowServer2022) 文章目录 题目配置步骤验证 题目 设置电源配置,以便客户端在通电的情况下,永不进入睡眠。 配置步骤 验证

小猪o2o生活通系统更新到了v24.1版本了php文件开源了提供VUE了但是车牌识别功能你真得会用吗

一.车牌识别设置项 车牌识别设置项总开关:系统后台-社区管理-社区配置-车牌识别配置。 平台需要开启车牌识别功能,其次平台可以选择车牌识别功能是由平台配置还是小区自己配置有需要提供代码的可以Q我昵称注明:CSDN网友。如果是平台自己配置&…

2024年火爆《幻兽帕鲁》可以macos系统运行吗?

幻兽帕鲁已经爆了,你和朋友们都是在哪个平台一起玩的? 这款有些类似宝可梦的游戏,已经以野火燎原之势席卷互联网,并且势必会持续一段时间,你可别说你不知道。 《幻兽帕鲁》目前能在哪些平台上运行? 这款由…

linux 下gdal库(python)

之前在windows下安装gdal,先要下安装包再安装。这次在linux上安装,试了一下pip install gdal,不可以。想着linux应该一样,结果一搜网上教程一堆,乱七八糟的。 搞了一个小时 最后发现一句话就可以!&#xf…

力扣hot100 分割回文串 集合 dfs

Problem: 131. 分割回文串 文章目录 思路Code💖 DP预处理版 思路 👨‍🏫 参考题解 Code import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; import java.util.List;public class Solution {int n;//字符…

基于二值化图像转GCode的斜向扫描实现

基于二值化图像转GCode的斜向扫描实现 什么是斜向扫描斜向扫描代码示例 基于二值化图像转GCode的斜向扫描实现 什么是斜向扫描 在激光雕刻中,斜向扫描(Diagonal Scanning)是一种雕刻技术,其中激光头沿着对角线方向来回移动&…

上位机图像处理和嵌入式模块部署(视频处理vs图像处理)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 从目前发展的情况来看,视频处理会慢慢变成一种主流趋势。这里面的原因很多,比如说现在嵌入式soc的算力越来越强、获取图像的…

【大数据安全】大数据安全的挑战与对策基础设施安全

目录 一、大数据安全的挑战与对策 (一)数据加密技术 (二)大数据安全与隐私 (三)大数据安全保障体系 (四)华为大数据安全解决方案 二、基础设施安全 (一&#xff0…

TSINGSEE青犀视频智慧电梯管理平台,执行精准管理、提升乘梯安全

一、方案背景 随着城市化进程的不断加快,我国已经成为全球最大的电梯生产和消费市场,电梯也成为人们日常生活中不可或缺的一部分。随着电梯数量的激增,电梯老龄化,维保数据不透明,物业管理成本高,政府监管…

用React给XXL-JOB开发一个新皮肤(四):实现用户管理模块

目录 一. 简述二. 模块规划 2.1. 页面规划2.2. 模型实体定义 三. 模块实现 3.1. 用户分页搜索3.2. Modal 配置3.3. 创建用户表单3.4. 修改用户表单3.5. 删除 四. 结束语 一. 简述 上一篇文章我们实现登录页面和管理页面的 Layout 骨架,并对接登录和登出接口。这篇…

【代码随想录】刷题笔记Day56

前言 26回了老家参加二姨的婚礼,还逛了几圈亲戚,回来就接家教的活,想到还要刷题开组会,回家注定是没法怎么休息啦,可恶 42. 接雨水 - 力扣(LeetCode) 暴力解法(双指针优化&#xf…

SpringBoot中集成Minio高性能分布式存储文件服务入门

场景 若依前后端分离版手把手教你本地搭建环境并运行项目: 若依前后端分离版手把手教你本地搭建环境并运行项目-CSDN博客 参考上面搭建项目。 Minio Minio是基于Go语言编写的对象存储服务,适合于存储大容量非结构化的数据,例如图片、音频…

定制自己的linux

记得看目录哦! 1. 基本介绍2. 思路分析3. 开始定制3.1 添加一块20G的硬盘3.2 重启,进行磁盘分区3.3 格式化分区3.4 创建目录,并挂载磁盘3.5 安装grub3.6 看是否安装上3.7 内核文件拷贝到磁盘3.8 修改grub2/grub.cfg3.9 创建目标主机的根文件系…

Spring Boot项目中集成连接池及部分细节说明

连接池 一,Connection连接二,数据库连接池三,集成数据库连接池1,Spring Boot默认连接池2,Druid连接池3,集成Druid(原生版本)3.1,引入依赖3.2,配置数据源3.3&a…

CSS 实现立体字效果

我们在工作中&#xff0c;很多场景会遇到立体文字&#xff0c;今天我们就来实现下&#xff0c;很简单&#xff0c;算是水文章吧&#xff1a; <h1>立体字体</h1>h1 {margin: 100px 0 0 100px;font-size: 5em;color: #fff;text-shadow: -1px 1px #bbb,-2px 2px #bbb…

设计模式——职责链模式(Chain of Responsibility Pattern)

概述 职责链模式(Chain of Responsibility Pattern)&#xff1a;避免请求发送者与接收者耦合在一起&#xff0c;让多个对象都有可能接收请求&#xff0c;将这些对象连接成一条链&#xff0c;并且沿着这条链传递请求&#xff0c;直到有对象处理它为止。职责链模式是一种对象行为…