问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Hexo 个人博客搭建超详细指南

创作时间:
作者:
@小白创作中心

Hexo 个人博客搭建超详细指南

引用
CSDN
1.
https://blog.csdn.net/weixin_44414930/article/details/137079132

本文将为你详细介绍如何使用Hexo搭建个人博客,从本地环境部署到在线发布,再到部署到腾讯云服务器,让你的博客不仅功能完善,而且访问速度更快。

前言

本文记录了搭建个人博客的详细教程,从本地到龟速在线访问的GitHub再到个人云服务器上的部署。经过一番折腾,终于成功。(然而。。。如今已经放弃自建博客了)

环境部署

Node.js安装

Node.js官网:https://nodejs.org/en/download/ 下载对应的版本安装即可。

检查Node.js环境是否安装成功

打开 cmd 或者 powershell ,输入:

$ node -v
$ npm -v

显示版本号

Git安装

Git官网:https://git-scm.com/downloads

检查Git是否安装成功

鼠标桌面右击选择 Git bash here 或者自行找到 Git bash 程序打开,输入:

$ git --version

显示版本号

Hexo的安装

在自己心仪的文件夹下,如E:/hexo,鼠标右击选择 Git bash here ,依次执行以下命令:

$ npm install hexo-cli -g
$ npm install hexo --save

如图所示,我之前已经安装好,所以这里是 updated 。图中红框的警告原因:fsevents是苹果系统的可选依赖,windows用户可忽略此类警告

安装后检查,输入:

hexo -v

先将 hexo 文件夹下的文件删除(清空hexo文件夹),不然后面会报以下错误:输入命令:

$ hexo init
$ npm install

生成 Hexo 页面

$ hexo generate
$ hexo g  # 上面的简写方式

启动 Hexo 服务

$ hexo server
$ hexo s  # 上面的简写方式

启动后效果如下(打开网页,输入网址http://localhost:4000/ )

恭喜你,成功在本地部署了 Hexo!!!

Hexo 部署到 Github

注册 Github 账号

Github官网:https://github.com,注册账号

新建项目

项目名称为: username.github.io ,仓库设置为 public 公开

设置信息:可以看到可以通过 https://username.github.io 进行访问了

推送代码

推送代码至 Github:Github 推送代码目前已经不支持账号密码方式,所以需要开启 ssh 密钥直接推送。

$ git config --global user.name "XXXX"                       # 配置个人信息-username
$ git config --global user.email "XXXXXXXXX@XXX.com"         # 配置个人信息-useremail
$ ssh-keygen -t rsa -C "XXXXXXXXX@XXX.com"					 # 生成密钥

给 git 用户添加 ssh 秘钥 (找到本地的 ssh 公钥,以 .pub 结尾,我的是 C:\Users\用户名.ssh\id_rsa.pub )并整个复制。然后再在 Github 中添加 id_rsa.pub 文件中的内容。

部署Hexo

打开 hexo 的配置文件 _config.yml 修改 deploy 位置的配置

注意:目前 Github 的分支已经不是 master 了,而是 main

deploy:
    type: git
    repo: github: git@github.com:XXXXXXX/XXXXXXXX.github.io.git    # 仓库地址
    branch: main    # 分支!!!!!!!!!!是 main

Hexo三连:

$ hexo cl && hexo g && hexo d

此时就可以通过 https://username.github.io 进行访问你的博客了

Hexo部署到腾讯云服务器

为了解决 hexo 部署到 GitHub 访问速度慢的问题,我们可以将 hexo 部署到云服务器上

部署前准备:

腾讯云服务器(本人基于宝塔腾讯云轻量级服务器 Centos 系统)
腾讯云域名(非必须,若有也需备案)

宝塔面板安装

宝塔面板可以可视化地操作远端服务器(这样就不用自己手动装 nginx 了)
进入宝塔面板的下载页面宝塔面板下载:https://www.bt.cn/new/download.html ,找到 Linux 面板,点击安装 Centos 脚本
进入腾讯云的控制台,选择自己的云服务器,点击登录,进入终端。粘贴 Centos 安装脚本 代码,回车,一路确认。
浏览器访问上面的外网面板地址,使用宝塔提供的用户名和密码
进入面板后,点击一键安装 LNMP 。就能直接将 Nginx , MySQL 等网站所需内容一键安装好。

安装并配置 Git 仓库

输入以下命令:

$ yum install git   			# 安装 git (远程服务器上)
$ adduser git       			# 配置 git 用户
$ chmod 740 /etc/sudoers        # 赋予用户权限
$ vi /etc/sudoers               # 编辑 sudoers 文件        

输入 i 进入insert模式 ,找到 root ALL=(ALL) ALL ,在其下方加入一行 git ALL=(ALL) ALL ,按下 ESC ,输入 wq ,保存文件。

root    ALL=(ALL)       ALL
// 在这里加入代码
git     ALL=(ALL)       ALL

继续输入以下命令:

$ chmod 400 /etc/sudoers   		# sudoers 文件权限修改回来
$ sudo passwd git				# 设置 git 用户的密码

给 git 用户添加 ssh 秘钥 (找到本地的 ssh 公钥,部署 hexo 到 GitHub 时有生成,以 .pub 结尾,我的是 C:\Users\用户名.ssh\id_rsa.pub )

$ su - git
$ mkdir -p ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ vim ~/.ssh/authorized_keys        # 将ssh密钥粘贴进去

Git 连接测试

$ ssh -v git@你的 server_ip 地址    # 输入密码即可成功登录云服务器

创建一个 Git 仓库,新建一个 post-receive 文件,用来存储本地的提交。

$ su root
$ cd /home/git
$ mkdir /home/hexo  					# 作为网站根目录
$ chown git:git -R /home/hexo			# 给予git用户权限
$ git init --bare blog.git  			# 在/home/git下创建新仓库blog.git
$ chown git:git -R blog.git 			# 给予git用户权限

在 blog.git/hooks 文件夹下创建一个 post-receive 钩子,把提交到 git 仓库的文件同步到 home/hexo文件夹中

$ cd blog.git/hooks
$ vim post-receive

文件中输入 i 进入insert模式, 输入以下内容后,按下 ESC ,输入 wq ,保存文件。

#!/bin/bash 
git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f

授予 post-receive 文件可执行权限,至此服务端已经配置完成。

$ chmod +x /home/git/blog.git/hooks/post-receive

检查文件及内容

宝塔及腾讯云服务器配置

腾讯云服务器管理规则

宝塔配置(直接上图)
ssl证书:可自行去腾讯云里面搜索ssl证书,然后申请,一般为免费一年的,证书下载后将对应文件内容复制到图中位置即可

部署Hexo

打开 hexo 的配置文件 _config.yml 修改 deploy 位置的配置

deploy:
    type: git
    repo: root@你的 server_ip 地址:/home/git/blog.git    # 仓库地址
    branch: master    # 分支

如果是多部署,由于 Github 和云上的 Git 的分支不同,可以这样写:

deploy:
  type: git
  repo: 
    github: git@github.com:XXXXXXX/XXXXXXX.github.io.git,main
    my_server: root@你的 server_ip 地址:/home/git/blog.git,master

Hexo三连:

$ hexo cl && hexo g && hexo d

通过网页浏览器 server_ip:80 来访问。若登录 server_ip:80 出现以下错误:

 没有找到站点
 您的请求在Web服务器中没有找到对应的站点!
 可能原因:
 1. 您没有将此域名或IP绑定到对应站点!
 2. 配置文件未生效!
 如何解决:
 1. 检查是否已经绑定到对应站点,若确认已绑定,请尝试重载Web服务;
 2. 检查端口是否正确;
 3. 若您使用了CDN产品,请尝试清除CDN缓存;
 4. 普通网站访客,请联系网站管理员;

解决途径:将 server_ip 添加到站点的域名管理即可,具体操作如下图。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号