把hexo部署到云服务器上

总体流程

首先建立本地与服务器连接,在服务器上搭建一个远程仓库,配置git钩子实现自动部署,在hexo配置deploy

建立本地与服务器连接

  1. 在服务器添加一个用户git
adduser git   #添加git用户

passwd git #给git用户配置密码

chmod 740 /etc/sudoers #改变sudoers文件的权限为文件所有者可写

vim /etc/sudoers

#在root ALL=(ALL) ALL 下方添加一行

git ALL=(ALL) ALL

chmod 400 /etc/sudoers #将其权限修改为文件所有者可读
  1. 添加ssh密钥到git用户
  • ​ 在主机打开C:\用户\(你的主目录).ssh 找到id_rsa.pub 复制里面的内容即为ssh密钥

​ 如果没有那你要生成你的ssh密钥

ssh-keygen -t rsa -C "your_email@example.com"
  • 在服务器里配置ssh密钥给git用户
su git  #切换到git用户

mkdir -p ~/.ssh

touch ~/.ssh/authorized\_keys #创建authorized\_keys文件

chmod 600 ~/.ssh/authorized\_keys #为authorized\_keys文件赋予文件所有者可读可写的权限

vim ~/.ssh/authorized\_keys

#粘贴你的ssh密钥

chmod 700 ~/.ssh #为.ssh文件夹赋予文件夹所有者可读可写可执行的权限

  • 在主机的cmd 通过 ssh git@serverIP 可以测试是否连接成功

在服务器创建Git远程仓库

sudo mkdir /var/repo    #新建目录,这是git仓库的位置
cd /var/repo #转到git仓库的文件夹
sudo git init --bare hexo.git #创建一个名叫blog的仓库

在服务器配置git钩子实现自动部署

当你从本地deploy后,git-hooks会自动执行下列命令,将你push的内容存到你的站点源目录下对于这个源目录 如果你通的是宝塔 可以直接在新建一个站点,站点根目录即为这个源目录,如果不是 你可以新建一个目录用来存放,但是你后面得配置nginx 至于如何配置 你可以搜一下其他博客,就是修改nginx.conf,监听接口,#转发到源目录

sudo vim /var/repo/hexo.git/hooks/post-update
#输入下面内容
#!/bin/bash
git --work-tree=源目录 --git-dir=/var/repo/blog.git checkout -f

在本地hexo配置deploy

在本地hexo根目录_config.yml 找到deploy

deploy:

type: git

repo: git@服务器ip:/var/repo/hexo.git

tips:

如果不是宝塔配置,记得要安装nginx配置好nginx