1、安装nginx
yum install nginx -y
2、创建git用户,为了让本地将项目上传之服务器
1)、adduser git #创建giit用户
2)、passwd git #为git用户设密码
3)、为git用户加入sudo权限
把git用户添加到sudo用户组中,输入以下代码
sudo vi /etc/sudoers
打开sudoers文件,输入:/root进行搜索,搜索到代码行root ALL=(ALL) ALL,然后在这一行下添加以下代码git ALL=(ALL) ALL。输入完毕之后,按wq!强制保存退出vi
4)、设置验证公钥作免密登陆
# 切换用户
su git
# 创建目录
mkdir ~/.ssh
# 新建文件
vim ~/.ssh/authorized_keys
在此处将你的公钥放入authorized_keys中,
重要的事说三边!你本地的!你本地的!你本地的。如果你的是windows下的应该在你的用户目录下如c:/user/jiejie/.ssh……的.shh文件夹中没有需要创建
ssh-keygen -t rsa
centos/fedora一般在/root/.ssh中
此处linux以.开头文件默认是隐藏的所以直接ls不显示cd /root/.ssh即可
直接粘贴到authorized_keys去
:wq退出编辑设置权限
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
然后为.ssh与.ssh/authorized_keys
现在可以测试连接性了
ssh -v git@ServerIP
当然如果linux系统没有ssh服务也需要安装或者启用。
5)、在服务器上建一个裸库
su git
cd ~
git init --bare blog.git
5、重新回到服务器,在网站根目录新建一个blog文件夹,用于客户端上传文件,并且把该文件授权给git用户。代码如下:
sudo mkdir -p /usr/share/nginx/html/blog
sudo chown -R git:git/usr/share/nginx/html/blog
接着新建一个post-receive文件
vim ~/blog.git/hooks/post-receive
然后在该文件中输入以下内容:
#!/bin/sh
git --work-tree=/usr/share/nginx/html/blog --git-dir=/home/git/blog.git checkout -f
保存退出之后,再输入以下代码,赋予该文件可执行权限。
chmod +x ~/blog.git/hooks/post-receive
6)7、返回客户端,设置博客根目录下的_config.yml文件。
此处我使用的是hexo
deploy:
type: git
repo: git@SERVER:/home/git/blog.git #此处的SERVER需改为你自己服务器的ip
branch: master #这里填写分支
message: #提交的信息
在本地使用hexo g上传到指定git仓库