Git----使用WebHook实现代码自动部署

  原由: 常常本地push到gitee等线上代码仓库,而后登录服务器在进行pull,很麻烦,想偷懒怎么办?使用git的webhook实现!

1.实现原理

  1.1本地提交推送

  1.2线上仓库监听push动做,也就是webhook,回调url触发服务器的pull操做

  1.3服务器pull操做

2.实现步骤

  2.1本地和服务器安装git(略过)

  2.2码云进入项目->管理->webhook设置,(其余原理同样 git,coding)

  url就是你服务器上能够访问的地址, 该地址是进行pull命令的文件,能够是php,python,node等等等,勾选push就是当push动做的时候触发这个url,访问服务器进行pull操做,勾选其余的就是其余的动做,这里不作解释. 添加后,会有测试按钮,建议代码写上测试一下

1 shell_exec('ls')

  若是返回文件目录,则表示该权限能够执行,服务器是LNMP, 而后只须要一行代码(个人需求就是自动拉取,全部不作深刻的操做,好比验证,日志,分类什么的能够本身补充)经过代码能够查看回调的信息,根据信息进行操做

$request = json_decode(file_get_contents('php://input'), true)

  拉取动做

echo shell_exec('cd your_path && git pull')

3.一些坑

  若是不成功,建议 LL 命令查看一下用户权限 通常PHP是www-data用户, 使用

sudo chown -R :www-data your_path
sudo chmod -R g+w  your_path

  主要是权限问题,这样应该能够啦! 路由什么的本身去搞定啦! 接下来就能够开心的本地push服务器本身去pull啦~哈哈哈

相关文章
相关标签/搜索