每次git push 后 ,服务器上都要去git pull 一下,很麻烦,因此我们可以编写一个钩子程序来执行git pull。
- 编写githook文件
<?php
$fs = fopen('./git_hook.log', 'a');
fwrite($fs, 'Request on ['.date("Y-m-d H:i:s").']'.PHP_EOL);
$json = file_get_contents('php://input');
$data = json_decode($json, true);
fwrite($fs, 'Data: '.print_r($data, true).PHP_EOL);
fwrite($fs, '======================================================================='.PHP_EOL);
$res = exec('cd /www/www/test && git pull origin master',$output);
var_dump($output);
if($res) {
echo 'success';
} else {
echo 'error';
}
exit;
?>
- 在gitee(github的中文版上配置webhook)
注意:
- 有些项目可能git上设置了是私有的,拉取时要密码,我们
cd /www/www/test
git config --global credential.helper store
此时git pull 会让你输入一次密码,第二次就不要了,因为他帮你缓存在文件中了
- 如果在gitee上webhook上点击测试时还是有误,没有办法执行git pull 则 要看下自己/home/www/是否有没有的话去/root目录复制一份
- 如果还是不能执行,看下php.ini文件的exec文件是否禁用掉了,如果禁用掉了则去掉禁用的exec,然后重启php-fpm