git-hexo部署到服务器
由于我换了一台电脑,又买了一个服务器,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 | #su git |
本地计算机
a. 生成密钥对,我是有过一个密钥对了,我为了两个都生效,我在C:\user\rao.ssh\下创建了一个config,用来让两个都生效,里面写这个。
然后给另一个密钥对也写一个,
b. 然后把.ssh里面的id_rsa.pub放到服务器上,可以用ftp,可以用宝塔来完成。也可以放到github上然后git clone到服务器,方法很多。
c. 在服务器上创建文件authorized_keys
1 | $cd ~/.ssh |
d. 在服务器上设置文件权限:
1 | $chmod 600 ~/.ssh/authorized_keys |
c. 再用主机登录到服务器,
1 | $ssh git@xxx.xxx.xxx.xxx(或者域名) |
这样就能免密登录到服务器了
配置Git仓库
a. 在服务器上使用git用户创建一个Git仓库,并且在该仓库中新建一个post-receive钩子文件。
1 | $cd ~ |
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 | $chmod +x ~/hexo.git/hooks/post-receive |
d. 重启ECS服务器实例。
至此我们就完成了所有关于服务器端的配置。
配置hexo和git
在本地计算机开始配置hexo和git,在本地文件夹下右键打开gitbash,
输入hexo init,注意要是空的文件夹,然后把原先的文件拷进来,修改_config.yml
然后就可以
1 | hexo g |
上传成功,但是乱序了
再去拷之前的博客的db.json,就没有乱序了