Hexo 个人博客搭建超详细指南
Hexo 个人博客搭建超详细指南
本文将为你详细介绍如何使用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 添加到站点的域名管理即可,具体操作如下图。