没有唯一 只有更牛逼
gitserver 搭建过程
1:添加一个用户 useradd php
2:设置一个密码 passwd php 连续输入两次一样的密码
3:在任意文件夹里建一个文件夹 mkdir /phpGit(修改为php的用户组 和 用户)
4:进去/phpGit里 执行 git init --bare
小结: 在这里我们就可以进行克隆 git clone 用户名@ip:/phpGit.git
为了让用户 不用每次克隆 推送都需要密码 我们进行如下操作:
1:在本地执行 ssh-keygen -t rsa -C "youremail@example.com" 生成公钥私钥
2:在服务器端 cd /phpGit 创建.ssh 文件夹 然后进去.ssh 创建文件 authorized_keys
3: 把本地的.ssh/id_rsa.pub里的公钥放到服务器端的 authorized_keys里;
4:关键的一步:改权限 给phpGit 755 .ssh 755 authorized_keys 655
小结: 在这里我们就可以达到推送 克隆不需要输入密码的问题 可以尝试哦(很危险的一件事情是
这时用ssh登陆也不用密码)
为了达到安全性 我们需操作如下 禁止用户登陆 只能克隆和推送
vi /etc/passwd
php:x:1001:1001::/home/php:/bin/git-shell
经过上边的一系列操作 就完成了gitserver 的搭建
我们进一步学习 如何让代码自动更新到我们php运行代码的根目录
运用自带的钩子实现 :
进入到/phpGit.git里 cp hooks/post-update.sample /phpGit.git/hooks/post-update
打开post-update 清空 (用命令 :1,.d)
加入如下脚本:
#!/bin/bash
cd /usr/share/nginx/html/phpGit (这是php放代码的地方)
unset GIT_DIR
git checkout master
git pull
这时基本大功告成:下边是需要修改一些权限 以及所属组问题
1:需要先看下 /home/php/.ssh用户所属组 应该是php php
2: 切换到php用户 执行 ssh-keygen -t rsa -C "youremail@example.com" 生成公钥私钥并把公钥放到authorized_keys中
3:(在php用户里)然后在 /usr/share/nginx/html/下 执行 git clone 用户名@ip:/phpGit.git
4:再把 html文件夹权限改成 777 再把php用户所属组改成root 命令:gpasswd -a 用户 所属组
尽情的玩耍吧 gitserver!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!