快速完成Hexo在ECS上的环境部署
准备工作
- 一台ECS/云服务器
- 本地的Hexo仓库
- VScode(可选)
Step1.本地连接ECS
生成SSH公钥/私钥
在本地的终端(Poweshell/Cmd)键入以下命令:
ssh-keygen |

这里可以按照默认一路按回车,如果想要把公钥私钥存储在其他目录可以像我一样自己输入目录。
进入你选择的目录,找到id_rsa.pub
,用记事本打开,复制其中的内容,这就是你的主机的公钥。
使用终端连接到ECS
在终端中输入:
ssh username@ip
例如你要登陆的服务器用户名为root,ip为xxx:
ssh root@xxx |

*首次连接可能会有更多的信息打印出来。
现在,你已经远程连接到了你的ECS。
接下来,让我们在ECS上做好准备。
Step2.ECS的配置
安装Node.js
在Ubuntu上通过apt
来安装Node.js
:
首先更新apt源 |

如果是在Centos上,则使用yum命令来完成:
sudo yum update |
这里就不上图了
安装Git
换汤不换药,同样用相同方法安装Git
sudo apt install git |

安装Nginx
同上:
sudo apt install nginx |

创建git用户
为了安全起见,我们不应该随意暴露root用户,所以我们创建一个新的git用户:
sudo adduser git |

设置好密码,用户信息可以一路回车下去。
临时赋予git用户sudo权限
设置sudoers文件修改权限:
chmod 740 /etc/sudoers |
使用vim编辑文件:
vim /etc/sudoers |
找到字段root ALL=(ALL:ALL) ALL
按i
进入编辑模式,在这一行下面添加git ALL=(ALL:ALL) ALL
添加完毕后按下Esc
,输入:wq
回车保存文件。

保存完毕后,将权限改回:
chmod 440 /etc/sudoers |

初始化Git仓库
为了能正确部署hexo文件到服务器,我们需要初始化一个裸仓库,依次执行以下命令:
cd /home/git //切换到git用户目录 |

创建网站目录
我们需要创建一个网站目录用于nginx
的配置:
cd /var/www/ //切换目录 |

配置 SSH
配置SSH是为了方便访问服务器。
cd /home/git //切换到git用户目录 |
然后将本地的公钥复制到 authorized_keys 文件里 。
在本地终端执行以下命令可以获取你的公钥。
cat ~/.ssh/id_rsa.pub |
确保用户组权限
键入以下命令以保证git
用户有足够的权限
chown -R git.git /home/git/blog.git/ |
配置Nginx
cd /etc/nginx/sites-available //切换目录 |
改动红框部分:
root /var/www/blog; //网站根目录 |

保存退出后,启动Nginx:
systemctl start nginx |
设置开机自启动
systemctl enable nginx |
配置Git Hooks
创建 post-receive 文件,先切换到git
su git |
复制下面的内容到 post-receive 文件中:
|
赋予可执行权限:
chmod +x post-receive |
Step3.本地终端配置
配置Hexo
打开本地博客根目录下的_config.yml 文件,找到最后的 deploy 配置,修改为:
# Deployment |
使用hexo cl&&hexo d
把仓库部署上去,大功告成!