个人博客搭建记录(Hexo框架+NexT主题)
0 写在前面
本文介绍了如何使用Hexo博客框架(NexT主题)编写博客并部署到线上
该工作分为两部分:本地编写(客户端)和线上部署(服务端)
- “本地编写”指的是如何使用Hexo框架编写博客、写好的博客如何上传到Hexo中、如何在Hexo中编辑博客等
- “线上部署”指的是如何把博客系统24小时运行起来、如何把写好的博客发布给其他人看等
1 本地编写
使用自己常用的电脑即可
1.1 前置环境
- git
- node.js
1.2 安装Hexo脚手架
1 | npm install -g hexo-cli |
执行该命令后,会在电脑上安装Hexo脚手架工具,后续步骤使用hexo命令即可
1.3 创建博客工程
像写代码一样,新建一个工程,用于存放源码。
1 | 初始化mybolg工程,位于./myblog |
执行完上述命令后,myblog目录下内容如下:
1 | myblog |
1.4 安装NexT主题
1 | npm install hexo-theme-next@latest |
1.5 修改配置
_config.yml文件为当前博客工程的配置文件
根据情况酌情修改
1 | # 指定网站语言 |
1.6 编写文章
首先新建文章
1 | hexo new "My First Blog" |
此时./source/_posts目录下会自动创建My-First-Blog.md文件,在该文件中编写文章即可
1.7 本地运行
1 | hexo s |
执行后控制台打印如下信息:
1 | INFO Validating config |
使用浏览器访问上述地址即可查看博客运行效果
2 线上部署
线上部署的本质是把public目录下的静态文件放到代理服务器上托管
生成静态文件:
1 | hexo g |
本文以Nginx作为代理服务器示范
2.1 前置环境
- Nginx
2.2 手动部署
将public目录中的所有内容上传到服务器上的指定目录,如/var/www/blog,然后根据情况修改nginx配置文件,后续内容更新只需替换静态文件即可。
2.3 使用插件部署
每次手动替换显然太麻烦,可以使用部署插件简化操作,下面以hexo-deployer-git为例介绍该部署方式
2.3.1 安装hexo-deployer-git插件
1 | npm install hexo-deployer-git --save |
2.3.2 修改hexo配置文件
1 | deploy: |
2.3.3 生成公钥并认证
在客户端的任意位置执行以下命令
1 | ssh-keygen -t rsa -b 4096 |
根据提示完成操作(可全部设置为空)
将~/.ssh/id_rsa.pub文件中的内容复制到服务器上的~/.ssh/authorized_keys文件中
(若不存在则先手动创建,并执行chmod 600 ~/.ssh/authorized_keys命令赋予当前用户的读写权限)
最后,将上述用户添加到www-data用户组,防止推送时报403错误
1 | 以tom为例 |
2.3.4 服务器创建仓库
服务器需要创建一个裸仓库(Bare Repository)
裸仓库没有工作目录,专门用来存放版本历史和接收推送。我们把它放在/var/repo目录下:
1 | sudo mkdir -p /var/repo |
然后配置自动部署钩子(post-receive),这是最关键的一步。当本地电脑执行git push把文件传过来后,这个钩子会自动把文件复制到你的网站根目录:
- 创建文件:
/var/repo/blog.git/hooks/post-receive - 在文件中粘贴以下两行内容(注意修改为你实际的网站根目录):
1 |
|
保存并退出。然后必须赋予这个钩子可执行权限:
1 | sudo chmod +x /var/repo/blog.git/hooks/post-receive |
- 目录权限调整
确保你的部署账户对网站根目录和Git仓库拥有读写权限:
1 | # 以tom为例 |
2.3.5 部署
1 | hexo clean && hexo d |
3 网站备案
敬请期待…
4 持续集成(CI)
敬请期待…