coding上实践git webhook

系统ubuntu 16.04,搜索出来的参考文章比较乱,应对问题的方法很多不适用,最后还是通过stackoverflow上的回答解决的,在这整理下。

在coding(码市)上已经创建好项目,并git clone到服务器上,我的目的是 本地每次push代码都能触发服务器自动pull。

A: 创建update.php, 核心是利用PHP shell_exec函数 执行shell命令。

B: 在码市 项目设置/webhook 里添加update.php的访问路径。代码参考 http://www.jianshu.com/p/92adf0c8361c。

C: nginx的user 为www-data。git pull命令会验证当前用户的ssh key,而www-data用户的根目录在/var/www。所以创建www-data的ssh key:

     c1 mkdir /var/www/.ssh

     c2 ssh-keygen 回车 /var/www/.ssh (指定生成目录)

     c3 chown www-data:www-data .ssh/*

     c4 chmod o-r id_rsa,私钥只能www-data有读取权限

D: echo >/var/www/.ssh/known_hosts

    ssh-keyscan -t rsa coding.net>> /var/www/.ssh/known_hosts

    git.coding.net 并且码市过来的ip都分别加下,应对host key verification failed问题

E: tail -f hooks.log监听更新日志, 在码市webhook里点击测试按钮,能看到如下信息,则说明自动更新成功了 


coding上实践git webhook_第1张图片

参考文章:

http://www.jianshu.com/p/92adf0c8361c

http://stackoverflow.com/questions/13363553/git-error-host-key-verification-failed-when-connecting-to-remote-repository

你可能感兴趣的:(coding上实践git webhook)