将Hexo博客部署到云服务器
将Hexo博客部署到云服务器
Ghost1. 准备工作
在开始部署之前,你需要做如下准备:
- 本地搭建完成的博客
- 一台电脑
- 一台云服务器
- 本地电脑安装一个ssh连接工具(或者bash终端)
- 多次失败也不怕重来的决心
2. 安装配置git
2.1 安装依赖工具包
1 | yum -y install git #自动选择y,全自动 |
2.2 查看git版本
1 | git --version |
如果能查看到git的版本号,说明安装成功。
3. 创建用户并配置SSH免密登录
3.1 创建用户并设置密码
这里的username改成你自己的用户名,并且为用户设置一个密码
注意: 在使用useradd命令创建新用户时,不会为用户创建主目录,不会为用户指定shell版本,不会为用户创建密码。
1 | adduser [username] |
3.2 创建 gititem 分组
1 | groupadd gititem |
3.3 为用户分配权限
把用户添加到 gititem 组
1 | usermod [username] -G gititem |
3.4 本地创建密钥
在本机电脑终端输入:
1 | ssh-keygen -t rsa |
然后一直回车,新建一个密钥。
一般来说在你创建的时候命令行会提示你密钥文件的路径,windows电脑一般是C:\Users\Administrator\.ssh\id_rsa.pub
复制id_rsa.pub
文件中的内容备用。
3.5 配置公钥
创建.ssh文件夹
1 | mkdir .ssh |
新建authorized_keys
1 | vim .ssh/authorized_keys |
将刚刚id_rsa.pub
公钥中的内容,复制粘贴到文件里,保存退出。
4. git仓库配置
退出用户登录
1 | exit |
此时应该是root用户,创建git目录,并修改目录的所有权和用户权限
1 | mkdir /home/gitrepo/ |
进入目录,建立git仓库,修改权限
1 | cd /home/gitrepo/ |
新建钩子文件 post-receive
1 | vim /home/gitrepo/blog.git/hooks/post-receive |
进入文本编辑器,粘贴下面内容
1 | !/bin/bash |
将文件保存后,赋予该文件可执行权限:
1 | chmod +x /home/gitrepo/blog.git/hooks/post-receive |
5. nginx配置
5.1 nginx 环境配置
安装 nginx
1 | yum install -y nginx |
启动nginx
1 | systemctl start nginx.service |
查看nginx服务状态
1 | systemctl status nginx.service |
设置开机自启动
1 | systemctl enable nginx.service |
5.2 创建运行目录
创建blog
目录用户nginx转发
1 | mkdir /home/blog/ |
5.3 修改nginx转发配置
查看 nginx 目录
1 | whereis nginx |
修改nginx的默认配置,每个人可能都不一样,我这里是 /etc/nginx/nginx.conf
1 | vim /etc/nginx/nginx.conf |
在文本编辑器中找到如下位置,进行对应的配置之后,然后进行修改
1 | server { |
检查配置文件中是否存在语法错误
1 | nginx -t |
重新加载配置文件
1 | nginx -s reload |
6. 在hexo站点配置文件中配置
6.1 部署
在本地hexo博客根目录下,打开终端,部署
1 | hexo cl |
如果提示ERROR Deployer not found:git
错误,先安装git部署插件:
1 | yarn add install hexo-deployer-git --save |
6.2 创建 npm 脚本
当然,为了每次部署时更简单,推荐创建 npm 脚本,在 hexo 的根目录下的 package.json
文件中加入:
1 | "scripts": { |
然后我们就可以在目录下直接运行npm
脚本部署啦:
1 | npm run deploy |
7. 总结
- 使用hexo生成静态文件
- 在云主机上搭建git环境,并将静态文件通过git上传到云主机
- 使用git-hooks实现自动部署
- Nginx用做静态文件服务器,实现外界对博客的访问