当前位置: 首页 >  平台搭建 >  快速搭建一个自己的博客

快速搭建一个自己的博客

导读:准备.本地系统环境:Ubuntu 20.04.5 LTS.Node版本:18.15.Git版本:2.25.1.一个github账号.一台云服务器.一个备案好的域名.系统环境不同,根据自己的系统来操作就行,步骤差不多。.Node、Git的版本选择长期稳定支持的新版本就行。.云服务器

准备

本地系统环境:Ubuntu 20.04.5 LTS

Node版本:18.15

Git版本:2.25.1

一个github账号

一台云服务器

一个备案好的域名

系统环境不同,根据自己的系统来操作就行,步骤差不多。

Node、Git的版本选择长期稳定支持的新版本就行。

云服务器和域名不是必须的,只是为了私有化更强。

相信看到这篇文章的大部分应该对这些东西都有基本的了解,准备性的东西就不罗嗦了。

安装Hexo:

全局安装Hexo,终端输入命令:sudo npm install hexo-cli -g

安装成功后终端输入hexo -v,看到版本号表示成功,本次版本hexo-cli: 4.3.0

配置仓库

在github中新建一个仓库,名称必须是用户名.github.io,这是用于托管博客,方便其他人访问博客。

为了以后的文件托管方便,可以通过ssh的方式连接,不需要每次手动输入密码,不会的自行解决。

初始化本地博客

在电脑中新建一个文件夹,名字随意(为了不出现莫名错误,不要有特殊符号或中文),这里取名为Blog。

在Blog目录下打开终端,输入hexo init初始化博客项目,没有异常将会生成如下重要文件夹或文件:

.
├── _config.yml // 博客配置文件
├── node_modules // 项目依赖包
├── scaffolds // 文章生成模板
├── source // 文章
├── themes // 主题

终端输入hexo g进行静态部署,终端输入hexo s启动服务器,在浏览器中输入localhost:4000访问,出现hexo的默认页面表示博客搭建成功。

到此,博客搭建成功,但还不能访问,需要部署到GitHub或自己的服务器上才能实现让他人访问。

将Hexo部署到GitHub

用编辑器打开Blog目录找到_config.yml文件,找到deploy配置项,修改为如下内容:英文冒号,冒号后要加一个空格

deploy:
  type: 'git'
  repository: 'github仓库名'
  branch: main # 绑定的分支

光改配置还不够,需要安装git插件deploy-git,才能部署到github。

终端输入npm install hexo-deployer-git --save进行安装。

安装完成后,终端输入如下三条命令:

hexo clean #清除缓存文件和已经生成的静态文件
hexo g #生成网站静态文将到默认设置的public文件夹
hexo d #自动生成网站静态文件,并部署到指定仓库

hexo s # 本地部署

以上四个命令是经常用到的

至此,在浏览器中访问:https://xxxxx.gibhub.io就能访问博客了。

解析自定义域名

以腾讯云为例,进入域名控制台,进入域名解析页面,添加一条解析记录:

打开Blog/source目录,添加CNAME文件,在里面填上自己的域名,不需要带www。

在Blog目录中打开终端,hexo clean hexo g hexo d三条命令执行一遍,打开GitHub如果CNAME文件出现在项目中,点击Settings——> pages——>Custom Domain 输入解析的域名,不要带www,然后浏览器输入绑定的域名,能打开博客说明成功。

注意是在用户名.github.io的仓库中设置,不是主页设置

到此,自定义域名完成,可以通过自定义域名访问博客。

发布文章

发布文章可以使用两个命令新建.md的文件,命令可以二选一,但不支持手动新建:

hexo n "文章名"   # hexo new "文章名"

新建的文件默认在博客根目录的source/_posts中,默认会写入一些模板内容,修改模板在目录scaffolds/post中进行。

具体的设置看文档说明。

安装主题美化博客

Hexo主题很多,但使用方式都基本差不多,都是下载,然后应用。主题的配置涉及很多方面,具体的内容要翻主题文档。

这里以Butterfly为例:https://butterfly.js.org/posts/21cfbf15/#安裝

在博客根目录打开终端,输入git clone -b master https://github.com/jerryc127/hexo-theme- butterfly.git themes/butterfly安装主题

也可以通过npm安装:npm install hexo-theme-butterfly

个人喜欢通过npm的方式安装

npm安装需要hexo5.0以上版本才支持,这种方式安装的主题在node_modules中,不在themes中。

升级方法:在主题目录下,运行 git pull

升级方法:在 根目录下,运行 npm update hexo-theme-butterfly

应用主题:修改根目录下的 _config.yml,把主题改为 butterfly

注意:该主题需要安装pug和stylus渲染器,安装命令:npm install hexo-renderer-pug hexo-renderer- stylus --save

为了方便升级,可以在根目录中创建文件_config.butterfly.yml,把主题目录中的_config.yml内容复制过去。

注意:是主题的yml不是根目录hexo的yml,仔细区分

所有有关butterfly的配置在新的_config.butterfly.yml中,它的优先级高于主题的优先级,并且会自动合并主题的不同配置。

改完后依次执行三件套部署本地,看是否配置成功,最终改好后再部署到服务器。

更具体的内容参考主题说明。

自动部署到云服务器

我用的轻量云服务器,操作系统是Ubuntu,其他服务器或者操作系统都类似。

前面在本地已经配置了将博客自动部署到github上,这里只需要在服务器上创建一个Git钩子,然后修改一下deploy配置即可。

服务器上创建Git钩子:

(1)登录服务器,创建一个git用户。(默认已经安装了Git)

# 创建一个名叫git的用户(名字自定义即可)
adduser git

(2)给 git 用户添加权限

#在根目录下的 home 文件夹下创建一个git文件夹
mkdir /home/git
#切换到创建好的git文件夹
cd /home/git
#创建 .ssh文件夹,里面主要用来放公钥
mkdir .ssh
#切换到.ssh文件夹并创建authorized_keys文件
cd .ssh
touch authorized_keys

ssh的配置能看到这里的基本都懂,这里就不多啰嗦

(3)初始化仓库

创建一个存放 git 仓库的文件夹:

mkdir /home/git/repos
cd /home/git/repos

#初始化一个裸仓库
git init --bare hexoBlog.git
#配置仓库的权限,让之前创建好的git用户能读写
chown -R git:git hexoBlog.git

这里必须注意,如果不给权限,后面的 git pull 将会报错,原因是没有权限写入。关于裸仓库和普通仓库的区别简单来说就是裸仓库看不到项目文件,普通仓库和你的项目目录一样,只是多了一个.git 文件夹。

(4)生成项目仓库

#创建我服务器上的项目目录hexoBlog
mkdir /home/git/repos/hexoBlog
#克隆仓库
git clone/home/git/repos/hexoBlog.git
#设置权限
chown -R git hexoBlog

注意:一定要路径,git 仓库是/home/git/repost, 项目仓库是 /home/git/repos/hexoBlog。

要是对路径不熟悉,可以直接在用户根目录中操作,不要嵌入太多层目录

(5)克隆仓库到本地

# 通过ip地址从配置好的线上仓库拉取下来
git clone [email protected]:/home/git/repos/hexoBlog.git
# 如果有配置域名的话也可以通过域名拉取
git clone [email protected]:/home/git/repos/hexoBlog.git

因为公钥的原因,这里是不需要密码的,如果成功,电脑上会出现一个 hexoBlog 的文件夹,如果报错请检查后再进行下面的操作。

(6)上传代码(git push)

# 打开刚才克隆下来的本地仓库
cd hexoBlog 
# 创建README.md文件
touch README.md
git add .
git commit -m"创建README.md文件"
git push

不出意外已经正常上传了,如果报错请检查权限。

(7)添加git钩子

注意这是在云服务器中操作

#切换到这个目录
cd /home/git/repos/hexoBlog.git/hooks
# 生成post-receive文件
touch post-receive
# 使用vim编辑
vim post-receive

在 post-receive 文件里面粘贴:

#!/bin/sh
# 打印输出
echo '======上传代码到服务器======'
# 打开线上项目文件夹
cd /home/git/repos/hexoBlog
# 这个很重要,如果不取消的话将不能在cd的路径上进行git操作
unset GIT_DIR
git pull origin main
echo $(date) >> hook.log
echo '======代码更新完成======'

保存后给 post-receive 文件加上运行权限

chmod +x post-receive

(8)自动部署
在hexo博客根目录中修改_config.yml文件中的deploy选项如下:

deploy:
  type: git
  repo: git@IP地址:/home/git/repos/hexoBlog.git
  branch: main

到此,只需要在终端输入hexo d就可以将本地博客推送到服务器中实现自动部署

内容
  • 重磅更新!Sermant 1.2.0 release版本新特性速览
    重磅更新!Sermant 1.2
    2023-12-12
    本文分享自华为云社区《重磅更新!Sermant 1.2.0 release版本新特性速览》,作者:华为云开源。.10月,
  • 宝塔面板配置MongoDB数据库
    宝塔面板配置MongoDB数据库
    2023-12-12
    1-安装MongoDB.在面板中的【软件商店】搜索MongoDB并安装,推荐下载4.x以上的版本(可视化工具MongoD
  • Windows系统上禁用Jenkins跨站请求伪造(CSRF)保护功能
    Windows系统上禁用Jenk
    2023-12-11
    禁用CSRF保护.为了在Jenkins中禁用CSRF保护,请按照以下步骤操作:.定位Jenkins服务.在Windows
  • 高效联调,可靠发布!华为云推出CodeArts Release发布管理服务
    高效联调,可靠发布!华为云推出C
    2023-12-09
    摘要: 华为云全新推出CodeArts.Release发布管理服务,旨在将华为多年形成的发布实践外溢,帮助企业提升软件发
  • Kurator v0.3.0版本发布
    Kurator v0.3.0版本
    2023-12-08
    摘要: 2023年4月8日,Kurator正式发布v0.3.0版本。.本文分享自华为云社区《华为云 Kurator v0
  • 一种新的告警收敛方式“先知预警”,为您的系统健康护航
    一种新的告警收敛方式“先知预警”
    2023-12-08
    前言.简介.买基金,上京东.基金交易系统是用户使用京东金融APP进行基金交易的核心支撑系统,每天有数十亿元的交易额。.在
  • 读发布!设计与部署稳定的分布式系统(第2版)笔记26_安全性上
    读发布!设计与部署稳定的分布式系
    2023-12-07
    1. 安全问题.1.1. 系统违规并不总是涉及数据获取,有时会出现植入假数据,例如假身份或假运输文件.1.2. 必须在整
  • 高并发场景下,如何优化服务器的性能
    高并发场景下,如何优化服务器的性
    2023-12-07
    摘要:.tcp_nodelay参数主要是对TCP套接字来说的,那对于服务器硬件,如果要使其能够支撑上百万甚至上千万的并发
  • SSH教程0简介
    SSH教程0简介
    2023-12-06
    0 简介.OpenSSH (http://www.OpenSSH.com).已成为远程管理UNIX类系统和许多网络设备的
  • 安全测试前置实践1-白盒&黑盒扫描
    安全测试前置实践1-白盒&黑盒扫
    2023-12-04
    作者:京东物流 陈维.一、引言.G.J.Myers在《软件测试的艺术》中提出:从心理学角度来说,测试是一个为了寻找错误而
  • 密评相关要求介绍
    密评相关要求介绍
    2023-12-04
    密评相关要求介绍.项目建设单位需从物理和环境安全、网络和通信安全、设备和计算安全、应用和数据安全等四个层面采用密码技术措
  • 学系统集成项目管理工程师(中项)系列06a_信息系统安全管理(上)
    学系统集成项目管理工程师(中项)
    2023-12-04
    1. 信息安全.1.1. 保护信息的保密性、完整性、可用性.1.2. 另外也包括其他属性,如:真实性、可核查性、不可抵赖
  • Centos7安装Gitlab
    Centos7安装Gitlab
    2023-12-03
    1. 什么是Gitlab?.后续内容会更新在个人站点: https.malusspectabilis.top.GitLa
  • 汽车ECU软件开发之应用层软件与底层软件
    汽车ECU软件开发之应用层软件与
    2023-12-03
    随着汽车产品日渐趋向电子化,人们对各类先进的安全系统、高级驾驶辅助系统的接受程度日益提升。而原本昂贵的盲点检测、自动紧急
  • 工业镜头篇之镜头焦距
    工业镜头篇之镜头焦距
    2023-12-03
    目录.图像采集系统.镜头等效分析.高斯光学公式.确定镜头焦距.凸透镜的球差.对焦和变焦.参考资料.图像采集系统.镜头等效
  • 智慧园区楼宇合集 | 图扑数字孪生管控系统
    智慧园区楼宇合集 | 图扑数字孪
    2023-12-03
    智慧园区是指将物联网、大数据、人工智能等技术应用于传统建筑和基础设施,以实现对园区的全面监控、管理和服务的一种建筑形态。
  • 1.5 编写自定位ShellCode弹窗
    1.5 编写自定位ShellCo
    2023-12-02
    在笔者上一篇文章中简单的介绍了如何运用汇编语言编写一段弹窗代码,虽然简易ShellCode可以被正常执行,但却存在很多问
  • 主动发现系统稳定性缺陷:混沌工程
    主动发现系统稳定性缺陷:混沌工程
    2023-12-01
    这是一篇较为详细的混沌工程调研报告,包含了背景,现状,京东混沌工程实践,希望帮助大家更好的了解到混沌工程技术,通过混沌工
  • 代码管理工具git的使用
    代码管理工具git的使用
    2023-12-01
    1. git 概述.git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linu
  • 基于深度学习的口罩检测系统(Python+清新界面+数据集)
    基于深度学习的口罩检测系统(Py
    2023-12-01
    摘要:口罩检测系统用于日常生活中检测行人是否规范佩戴口罩,利用深度学习算法可实现图片、视频、连接摄像头等方式的口罩检测,
  • 智能车载设备
    智能车载设备
    2023-10-02
    智能车载设备.我们的智能车载设备是一款结合了最新科技和创新设计的汽车配件,旨在提升驾驶体验、提高安全性和为用户带来智能化
  • 智能医疗设备
    智能医疗设备
    2023-10-02
    智能医疗设备产品介绍.智能医疗设备是一款集成了先进技术的高科技产品,旨在提高医疗保健的效率和质量。该设备主要应用于医院、
  • 互联网金融服务平台
    互联网金融服务平台
    2023-10-01
    互联网金融服务平台.产品功能.个人理财:用户可以通过平台进行投资理财,选择适合自己的理财产品,实现资金增值。.贷款服务:
  • 电子元件电感
    电子元件电感
    2023-10-02
    电子元件电感.产品功能.电感是一种重要的电子元件,用于储存和释放电能,调节电路中的电流和电压。它在电子设备和通讯设备中起
  • 智能智能家居设备
    智能智能家居设备
    2023-10-05
    智能家居设备介绍.产品概述.我们当前运营的产品是智能家居设备,它是一款智能化的家居控制系*,旨在为用户提供更便捷、舒适的
  • 智能可穿戴设备
    智能可穿戴设备
    2023-10-03
    产品功能介绍.我们的智能可穿戴设备是一款集健康监测、运动追踪、通讯互动等多种功能于一体的产品。它采用先进的传感技术,可实
  • 智能手机
    智能手机
    2023-10-01
    产品功能介绍:智能手机.智能手机是一款集通讯、娱乐、办公等功能于一体的移动智能设备。首先,智能手机具有强大的通讯功能,支
  • 智能智能物流设备
    智能智能物流设备
    2023-10-04
    智能物流设备.1. 产品描述.智能物流设备是一款基于物联网技术的智能设备,主要用于运输、储存和**物流货物。其核心功能是
  • 智能智能娱乐设备
    智能智能娱乐设备
    2023-10-04
    产品功能介绍.1. 智能娱乐设备.我们的智能娱乐设备是一款结合了智能技术和娱乐功能的产品。它拥有丰富的娱乐资源,包括音乐
  • 智能电视
    智能电视
    2023-10-01
    产品功能介绍.智能电视是一款结合了传统电视和智能硬件的产品。它内置了智能操作系*,能够连接互联网并运行各种应用程序。智能