git 基于码云webhook 方式,结合nginx,php建立git自动更新
nginx.conf反向代理配置:
server {
listen 80;
server_name git.XXX.com; #这里域名自己自定义
location / {
proxy_pass http://127.0.0.1:9666; # 转发规则
proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
#proxy_set_header Upgrade $http_upgrade; # 升级协议头
#proxy_set_header Connection upgrade; # 反向代理websocket时使用
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
expires 30d;
access_log off;
}
}
码云webhook配置
git-ploy代码配置讲解:
https://github.com/sy-records/git-deploy 除了readme中写的,另外要注意作者并没有配置secret字段,而secret字段才是上图签名**的真实对应字段:
使用swoole系统级的exec,而不暴露web环境的exec,这个非常好,git执行需要root命令,直接web环境下的www用户是没有权限的;