第一篇文章……以后应该还有……之前总是看别人的博客,自己本地也写,看见比较好的就私藏下来,
今天开始动手写一些自己的blog……
一. 工作场景
团队使用bitbucket控制,PHP框架为TP,现在需要利用webhook实现php代码的自动部署。
二. 实现原理
简单的讲,就是在Bitbucket远端设置仓库被push的触发事件。说白了,就是远端仓库被push时,会请求你自己设定的URL,在URL的PHP代码中实现类似shell_exec(‘git pull’)
三. 实现步骤
1.在服务器端生成 网站执行用户(一般是www或apache,可以在服务端配置文件中查看该用户)的公钥,
将公钥粘贴到远端的bitbucket.
***注意:假如你现在的网站根目录的用户是root,并且git的连接也是root账户配置……两条路可选:
一:把网站根目录的用户改为当前网站执行用户,并且用该用户重新连接bitbucket一遍,
之前git不受影响
二:如果你就想按老男孩的 网站根目录:root:755 文件:root:640 ,可以visudo提升
权限,但是小生在此遇到php 执行sudo命令的问题,希望有成功的猿友们留言***
2.在远端bitbucket设置选项中打开WebHook,加入你想要触发的URL,并选择PUSH触发事件
3.在上一步的URL的代码中 重点实现 shell_exec("cd $dir&&git pull origin master")
4.完成