部署Hexo博客到私有云服务器上
本文最后更新于:2023年2月3日 下午
前言
本文介绍一个将Hexo建立的博客,部署到私有云服务器上的过程。私有云服务器系统使用Linux系统,博客框架使用Hexo,Hexo发布器使用git,网站代理服务器使用nginx。
名词解释
Hexo[1] 一款快速、简洁且高效的博客框架 。
私有云服务器 在云服务提供商处购买的,可用于个人使用的网络服务器。
git[2] 一个免费和开源的分布式版本控制系统。
nginx[3] 一个HTTP 和反向代理服务器、邮件代理服务器和通用 TCP/UDP 代理服务。
部署流程
-
本地电脑使用Hexo发布器,将要发布的网站内容上传到私有云服务器的git仓库。
-
私有云服务器的git仓库在接收到git push后,自动通过git hooks,将网站内容同步到nginx的访问目录下。
-
通过nginx服务,对静态博客网站进行代理。
服务器环境的安装与配置
以下步骤,除特别提醒,均在私有云服务器上操作。
一、配置git服务
安装git
安装git,在云服务器的控制台输入如下命令:
1 | |
读条结束后,输入以下命令检查git版本:
1 | |
创建 www 用户
创建的这个用户,是用于管理博客网站相关的服务
1 | |
然后为这个账号设置密码
1 | |
创建 git 仓库并初始化
我们创建/data/repos目录用于存放 git 仓库
1 | |
创建好后,初始化一个裸露的仓库
1 | |
这个仓库用于存放Hexo博客的git仓库
给 git 仓库目录设置用户和用户组并设置权限
1 | |
创建网站存放目录
创建网站目录文件
1 | |
给网站目录文件设置权限
1 | |
绑定git hook
创建git同步钩子
1 | |
按下i键,进入插入模式,输入钩子脚本如下:
1 | |
按下ESC键退出编辑模式,输入:wq保存并退出文件
增加可执行权限
1 | |
二、ssh连接配置
生成ssh密钥对
在本地客户端电脑上,输入shell命令生成密钥对[4]
1 | |
这时会生成两个文件,如:id_rsa和id_rsa.pub。其中有后缀名.pub的是公钥,没有后缀名的是私钥。
如果已生成了公钥和私钥,可跳过这步。
绑定私钥
在本地客户端电脑上,进入到用户文件夹,创建ssh配置文件。
1 | |
修改配置文件,绑定刚刚生成的私钥。
config
1 | |
保存文件,并确认配置文件config和私钥id_rsa在同一目录.ssh下。
若有多个密钥对,也可以通过此文件进行配置。[5]
绑定公钥
切换到git用户,创建ssh密钥目录
1 | |
绑定密钥
1 | |
重启ssh服务
1 | |
更改www用户默认shell
使用命令查找 git-shell 所在目录
1 | |
输入命令,编辑/etc/passwd文件,
1 | |
将最后一行关于www用户的登录 shell 配置改为查找到的 git-shell 的目录如下
passwd
1 | |
此举是为了保证访问安全,将git用户默认的shell修改为git,禁止其使用Linux shell。
使用搭建好的 Git 服务
克隆仓库到本地客户端电脑
1 | |
三、nginx配置
安装nginx服务
1 | |
修改nginx启动用户
输入命令,配置nginx
1 | |
在nginx.conf文件中,找到如下内容:
nginx.conf
1 | |
查看使用nginx服务的用户名,将其修改为我们创建的www用户。
1 | |
按下ESC键退出阅读模式,输入:q退出文件。
设置nginx网站服务
输入命令,打开nginx配置
1 | |
在nginx.conf文件中,找到如下内容:
nginx.conf
1 | |
将root这一行的/usr/share/nginx/html;修改为用于存放网站文件的目录。
nginx.conf
1 | |
按下ESC键退出编辑模式,输入:wq保存并退出文件
重启nginx服务器
在nginx服务停止后,输入命令,重启nginx服务。
1 | |
需要停止nginx服务,使用以下命令:
1 | |
需要重启nginx服务,可以使用以下命令
1 | |
本地客户端创建Hexo项目并部署
以下步骤在本地客户端电脑操作
一、建立Hexo项目(Mac OS)
安装brew
1 | |
中国地区安装方法
1 | |
安装node.js
1 | |
或者需要指定版本
1 | |
安装Hexo-cli
1 | |
安装完成后,在终端查看hexo的版本
1 | |
创建Hexo项目
1 | |
如果已存在Hexo项目,但丢失了node_modules目录,可以通过如下命令重新安装依赖包
1 | |
二、Hexo部署配置
安装hexo-deployer-git
1 | |
Hexo项目的deploy配置
1 | |
使用deploy发布博客到云服务器
1 | |
访问你的博客
完成以上步骤后,通过直接访问公网IP地址,或者通过你自己的域名(经过IP绑定、备案),将可以访问到自己的博客
参考
- netlify.Hexo[EB/OL].https://hexo.io/zh-cn/, 2022/2022 ↩
- git[EB/OL].https://git-scm.com/, 2022/2022 ↩
- nginx[EB/OL].https://nginx.org, 2022/2022 ↩
- 生成/添加SSH公钥 - Gitee.com[EB/OL].https://gitee.com/help/articles/4181, 2022/2022 ↩
- Git配置多个SSH-Key - Gitee.com[EB/OL].https://gitee.com/help/articles/4229, 2022/2022 ↩