Git自动部署
本方法是通过git网站上提供的WebHooks完成的
应用服务器使用的是nginx,用户www-data,这里需要注意查看真实运行环境的用户
生成用户公钥
sudo –u www-data ssh-keygen –t rsa –C "备注说明"
此步可能会有权限错误,请根据相应的报错信息进行修改
我的报错是/var/www目录下没有.ssh
mkdir /var/www/.ssh chown -R www-data:www-data /var/www/.ssh
Clone项目
Sudo –u www-data git clone git@xxxxxx.com //ssh的git地址
这里又可能出现权限问题,没法新建目录
mkdir /www/web/test.adophper.com chown -R www-data:www-data /www/web/test.adophper.com
上传自己的hooks文件run.php
$target = '/www/web/test.adophper.com'; echo "Startn"; echo shell_exec("whoami");//查看真实用户很重要 $json = json_decode(file_get_contents('php://input'), true); try { if (isset($json['password']) && $json['password'] == 'xxxxxx') { $res = shell_exec("cd $target && git pull"); echo date('Y-m-d H:i:s') . ",Updatedn"; print_r($res); echo "n"; } else { echo "Password Errorn"; } echo "Endn"; }catch (Exception $e) { print_r($e); }
这里的页面就根据自己需求修改了。