使用 Hexo 搭建个人博客并部署到云服务器

使用 Hexo 搭建个人博客并部署到云服务器
阿制1 整体流程
在本地运行 hexo deploy 命令,Hexo 会将生成的静态文件 (hexo generate) 推送到远程的 Git 仓库
在 Git 仓库中,配置一个钩子脚本,它会在接收到推送后执行——将最新的静态文件强制覆盖到指定的工作目录
在 Nginx 服务器中,配置访问根路径的请求指向该工作目录
本地环境准备
2.1 安装 Node.js 和 Git
这两个我是很早就安装好了,网上也有大量的资料,我就不重复了,这里主要记录 Hexo 相关笔记
(1) 验证 Node.js 是否安装成功,打开 cmd 输入node -v,出现版本信息,则 ok
C:\Users\gzl>node -v |
(2) 验证 Git 是否安装成功,打开 cmd 输入git --version,出现版本信息,则 ok
C:\Users\gzl>git --version |
同时在文件夹中点击右键会出现 Git Bash Here
2.2 安装 Hexo
(1) 新建一个文件夹用来存储个人博客:E:\MyBlog
进入该文件夹,进入 Git Bash,输入npm install -g hexo-cli 将 Hexo 命令行工具安装到系统的全局环境中
gzl@gzl MINGW64 /e/MyBlog |
(2) 待安装完毕,输入以下指令,将会新建一个 myblogs 文件夹,并且安装 Hexo 项目所需的依赖项
# 创建一个新的 Hexo 项目 |
最后,会在 myblogs 文件中生成如下文件:
(3) 继续在 Git Bash 中执行指令hexo server
$ hexo server |
执行完毕后,打开本地浏览器,访问http://localhost:4000/,出现以下界面,说明第一步成功了
3.1 Nginx 环境配置
3.1.1 安装 Nginx
下载 Nginx
yum install nginx |
查看版本
nginx -v |
3.1.2 更改 Nginx 配置文件
需要将 Nginx 的配置文件中网站的根目录 (root) 指向 hexo 的部署目录,以及修改域名 (server_name) 为自己已备案的域名,如果没有,则填公网 ip
所以,
(1) 首先创建一个文件用来存放 hexo 的部署文件
mkdir -p /data/hexo |
(2) 然后找到 Nginx 的安装目录
rpm -ql nginx |
(3) 再然后修改 nginx 配置文件nginx.conf
cd /etc/nginx |
可以删了原来的所有内容,然后复制下面过去:
user nginx; |
修改完毕后按 Esc 键进入命令模式,再输入 :wq 保存并退出
(4) 进入到/etc/nginx/conf.d文件夹下面,通过vim default.conf打开文件
- 情况 1:如果没有域名的话,复制以下内容:
(需要改下 “公网 IP”)
server { |
- 情况 2:如果有域名,且有 SSL 证书的话,复制以下内容:
(需要改下 “域名” 和 SSL 证书存放位置)
server { |
(5) 启动 Nginx 和 关闭 Nginx
启动 Nginx
nginx |
关闭 Nginx
nginx -s stop |
3.2 Node.js 环境配置
安装 node.js,依次执行以下命令:
# 切换到根目录,安装 node.js |
3.3 Git 环境配置
3.3.1 安装 Git
依次执行以下命令:
# 安装,遇到 yes 选 yes |
3.3.2 创建 Git 用户
依次执行以下指令:
# 创建git用户 |
找到root ALL=(ALL) ALL,在下面添加git ALL=(ALL) ALL
继续执行以下指令
# 修改文件权限 |
3.3.3 配置 SSH 免密登录
由于是将本地的静态文件推送到服务器的 Git 仓库中,所以要配置 ssh 免密登录服务器
(1) 在服务端,依次执行以下指令:
# 切换到 git 用户 |
(2) 在本地计算机打开 Git Bash,执行以下指令
# 在本地生成公钥/私钥对 |
遇到系统询问,就按回车键。最后生成的公钥和秘钥会自动保存在C:\Users\gzl\.ssh目录下
(3) 给私钥设置权限,执行以下指令:
$ chmod 700 ~/.ssh |
(4) 将本地的公钥 (id_rsa.pub) 上传到服务器的/home/git/.ssh目录下
(5) 新建authorized_keys文件,并拷贝公钥的内容到该文件中,依次执行以下指令:
cd ~/.ssh |
(6) 测试本地免密登录服务器
进入本地计算机的 Git Bash,输入:
$ ssh -v git@xxx.xxx.xxx.xxx(公网IP) |
最后面会出现:
3.3.4 配置 Git 仓库
(1) 在服务器新建一个 Git 仓库,同时新建一个钩子文件
cd ~ |
输入git --work-tree=/data/hexo --git-dir=/home/git/hexo.git checkout -f,保存并退出
(2) 授予钩子文件可执行权限
chmod +x ~/hexo.git/hooks/post-receive |
重启 ECS 实例,服务端配置完成
(1) 在本地计算机打开 Hexo 项目,我用的 vscode,修改_config.yml文件中的deploy:
deploy: |
(2) 安装插件,hexo-deployer-git 和 hexo-server
# 用于将 Hexo 生成的静态文件推送到指定的 Git 仓库 |
(3) 配置 Git 全局变量
回到 Git Bash,输入:
# email 和 name 随便填一个也可以 |
(4) 生成静态文件和发布博客
在 vscode 的终端中输入:
# 清除之前生成的静态文件 |
至此,已经全部配置完毕了
如果在 nginx 中配置了域名的话,可以通过域名访问博客了,没配置也可以用公网 ip 访问
(1) 在 vscode 中打开 Hexo 项目,打开终端,使用如下命令创建新文章
hexo new "title" |
执行该命令,Hexo 会在/source/_posts目录下创建一篇新的文章
(2) Front-matter
Hexo 创建的文件中开头有一段配置信息:
这个叫做Front-matter,即前置信息,用于给 Hexo 渲染该 md 文档
| 配置项 | 意义 |
|---|---|
| title | 网页文章标题 |
| date | 文章创建如期 |
| tags | 文章标签 |
(3) 发布文章
随便编写点内容
在终端依次输入:
# 清除之前生成的静态文件 |
可以在本地预览文章
最后部署到远程的 Git 仓库中
# 部署到 Git 仓库,hexo deploy 的简写 |
稍微等一下,在浏览器访问域名,就可以看到了
6 Hexo Fluid 博客美化
想找一个既美观又简洁的博客主题,看来看去,最后选了 Fluid
Fluid 的安装以及配置在官方手册里说的挺清楚的,改改 Markdown 就好了
- 预览网站:Fluid’s blog 和 zkqiang’s blog
- 主题安装
- 主题配置
补充几个:
6.1 更改代码块的背景色并设置 Mac 风格代码块
更改 1:
lib: "highlightjs" |
更改 2:
在node_modules\hexo-theme-fluid\source\css路径下新建文件mac.styl,复制以下代码:
.highlight |
在主题配置_config.fluid.yml中找到custom_css选项,加入- /css/mac.css代码
custom_css: |
修改前:
修改后:
6.2 压缩静态资源
博客中有大量 HTML、CSS、JS 文件,这些文件为了阅读方便会加入许多回车和空行,但在页面解析时其实会浪费部分时间,此外如果有许多插图,也会拖慢网页加载
可以安装hexo-neat插件解决
$ npm install hexo-neat --save |
然后在站点配置_config.yml中添加
# hexo-neat |































