git@oschina webhook 自动化部署

  • 内容
  • 评论
  • 相关

环境

debian nginx php git git@oschina

 

1.创建git@osc库

image

2.公钥管理

image

具体操作参考 怎样生成公钥

 

3.编写webhook 脚本  update.php

<?php
$www_folder = "/data/www/gxsc" ;

//git仓库地址
$git_repo = "git@git.oschina.net:547376634/gxsc.git";

//执行指令
echo shell_exec(" cd $www_folder && sudo git pull $git_repo 2>&1 ");

 

4.设置执行权限

php执行 whoami.php,查看结果

image

ps:whoami.php

<?php echo exec('whoami'); ?>
这里www-data用户执行 sudo 命令时出出错
错误信息会出现Permission denied (publickey,password,keyboard-interactive)
执行:sudo visudo -f /etc/sudoers
在root 后面 添加  www-data ALL=(ALL) NOPASSWD: ALL
image

 

 

5.测试 php hook脚本

执行url

image

 

6.修改git@osc hook脚本地址

image

 

7.测试

image

push后,刷新url地址

 

image