一、配置思路
首先在云服务器上配置git仓库(nginx默认装好的,本文章不写其他东西),然后再本机win10配置ssh证书并且建立信任链接,最后是发布前的配置。
二、服务器配置
我用的是腾讯云服务器centos7
1、安装git环境
1)用xshell
连上服务器
2)检查gitgit --version
3)安装git
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
yum install -y git
git --version //验证git
2、创建git用户并配置仓库
1)一行一个命令
useradd git //创建git用户
passwd git //设置密码
su git //切换到git用户
cd /home/git/
mkdir repos && cd repos
git init --bare blog.git //创建一个空仓库
cd blog.git/hooks
vi post-receive // 创建 hook 钩子函数,输入了内容如下
下面的内容放到post-receive中
#!/bin/sh
git --work-tree=/home/blog --git-dir=/home/git/repos/blog.git checkout -f
2)给刚刚创的文件添加执行的权限chmod +x post-receive
3)回到root用户,并更改文件夹的属组
su - //输入密码,回到root用户
mkdir /home/blog //与post-receive中的work-tree对应,创建博客根目录
chown -R git:git /home/blg
chown -R git:git /home/git/repos/blog.git
4)回到本地windows上测试能不能把仓库clone下来
随便找个地方打开cmd,前提是装好git,输入命令测试:git clone git@server_ip:/home/git/repos/blog.git
看看是不是多了个可爱的blog文件夹
三、本机windows10配置
1)windows要先安装git 官网,安装跟着提示走就好了
2) 安装好后,随便找个地方右键进去git bash
3)打开后是这个样子的
4)以下的命令一行行的输
git config --global user.name "yourname"
git config --global user.email [email protected]
ssh-keygen -t rsa -C "[email protected]"
git config --global core.autocrlf false // 禁用自动转换,这个不设置后面上传时会出现警告。
5)建立ssh信任关系,这个很重要
ssh-copy-id -i /c/Users/hasee/.ssh/id_rsa.pub git@yourServerIp
根据提示走,然后这里要输一次密码
上面的/c/Users/hasee/.ssh/id_rsa.pub
路径是根据4)中的第三行生成的,在控制台输出的内容可以看得到
6)测试ssh免密登录
随便找个地方打开cmd
输入ssh git@yourServerIp
回车
四、发布
到这里我们就完成了服务器和本机配置,现在是修改hexo的配置文件,进行远程部署
1、编辑_config.yml
文件
找到deploy:
注意有空格
deploy:
type: git
repository: git@yourServerIp:/home/git/repos/blog.git
branch: master
2、编辑package.json
方便发布
添加一些内容
"scripts": {
"deploy": "hexo clean && hexo g -d",
"start": "hexo clean && hexo g && hexo s"
},
如果看到 {
和}
分别是{
和 }
不知道为啥被转义了
所以我贴个图片吧,如下
3、开心快乐的发布
在本地调用就可以用npm start
,舒舒服服的,发布命令用npm run deploy
坑:这里我第一次是没有安装部署的插件所以失效,输入命令解决npm install hexo-deployer-git --save
五、结语
感谢大佬们的观看,本人超级小白。至于控制git用户的权限实在是不成功,限制权限候后文章又发布不了,等以后学习更多了再回来配置。有问题的话联系我或者在下面留言哦,虽然还没搞懂这个留言系统怎么用,继续努力吧~
最后如果出了什么问题一定要仔细检查步骤,大不了删了重来,我就是弄了两三次╮(╯﹏╰)╭。