看这个

由于我换了一台电脑,又买了一个服务器,git发布到github上有些不稳定,而且慢,所以我打算发布到我的服务器。

环境:win10, ubuntu18.04.3 , win10已安装git和hexo,并且可以部署到github上。

服务器上的部署

一、首先是为ubuntu创建新用户,在服务器上操作

a. 创建git用户。

1
#adduser git

b. 修改git用户的权限。

1
#chmod 740 /etc/sudoers

c. 打开文件。

1
#vim /etc/sudoers

进入后按i键由命令模式切换到编辑模式。找到 root ALL=(ALL) ALL,在下面添加一行 git ALL=(ALL) ALL。修改完成后,先按Esc由编辑模式切换到命令模式,再输入:wq命令保存并退出编辑器。

d. 保存退出后改回权限

二、为免密登录准备

在home的git目录下创建一个.ssh文件

1
2
3
#su git
$cd ~
$mkdir .ssh

本地计算机

a. 生成密钥对,我是有过一个密钥对了,我为了两个都生效,我在C:\user\rao.ssh\下创建了一个config,用来让两个都生效,里面写这个。

image-20210411115240561

然后给另一个密钥对也写一个,

b. 然后把.ssh里面的id_rsa.pub放到服务器上,可以用ftp,可以用宝塔来完成。也可以放到github上然后git clone到服务器,方法很多。

c. 在服务器上创建文件authorized_keys

1
2
3
$cd ~/.ssh
$cp id_ras.pub authorized_keys
$cat id_ras.pub >> ~/.ssh/authorized_keys

d. 在服务器上设置文件权限:

1
2
$chmod 600 ~/.ssh/authorized_keys
$chmod 700 ~/.ssh

c. 再用主机登录到服务器,

1
$ssh git@xxx.xxx.xxx.xxx(或者域名)

这样就能免密登录到服务器了

配置Git仓库

a. 在服务器上使用git用户创建一个Git仓库,并且在该仓库中新建一个post-receive钩子文件。

1
2
3
$cd ~
$git init --bare hexo.git
$vi ~/hexo.git/hooks/post-receive

b. 进入后按i键由命令模式切换到编辑模式。输入: git --work-tree=/home/www/hexo --git-dir=/home/git/hexo.git checkout -f

即:让钩子文件删除/home/www/hexo目录下原有的文件,然后从blog.git仓库 clone 新的博客静态文件到/home/www/hexo目录下。(这个我弄错了,搞了两个小时。)

完成以上修改后,先按Esc由编辑模式切换到命令模式,再输入:wq命令保存并退出编辑器。

c. 授予钩子文件可执行权限。

1
2
3
$chmod +x ~/hexo.git/hooks/post-receive
$cd ~
$sudo chmod -R 777 /home/www/hexo

d. 重启ECS服务器实例。

至此我们就完成了所有关于服务器端的配置。

配置hexo和git

在本地计算机开始配置hexo和git,在本地文件夹下右键打开gitbash,

输入hexo init,注意要是空的文件夹,然后把原先的文件拷进来,修改_config.yml

image-20210411150420443

然后就可以

1
2
hexo g
hexo d

上传成功,但是乱序了

再去拷之前的博客的db.json,就没有乱序了