使用git的webhook

  1. 通过gitosc的webhook来进行测试项目的自动部署;
    2.用ps -aux|grep php-fpm 发现php-fpm的默认用记是nobody,此账号权限是很低的,关于nginx,php-fpm相关的权限问题看 http://www.cnblogs.com/zrp2013/p/4183546.html
    3.php程序以www用户来执行,当执行exec("sh update.sh")时,update.sh脚本也是以www用户执行的
    注:exec("sh update.sh >& error.log");可以将文件重定向到error.log文件中
    4.结果发现,之前设置的ssh密钥是以root用户来设置的,php以www用户执行脚本中的git pull 命令时就没有权限
    5.通过设置www下的ssh密钥, sudo -u www ssh-keygen ...  以www用户执行生成密钥的操作  ,
        生成后可 cat /home/www/.ssh/id_rsa.pub,查看生成的密钥,设置好后来测试是否连接成功, sudo -u www ssh -T git@git.oschina.net
    6.有权限后,git每次收到push都会触发webhook,调用设置的php地址,php执行shell脚本git pull,从而实现自动更新



详细步骤见:http://blog.csdn.net/hsany330/article/details/49888295