Github 准备事项
1.在仓库settings里添加webhooks
以私人仓库为例:
1.创建完仓库之后,点击settings。
设置webhooks访问路径:
以我自己项目为例 ,框架使用的是tp6。在public/下创建一个名为basic.php的文件,目的在于当代码推送至服务器上时,github可以访问到并且可以执行的一个文件。
该文件用于执行shell 命令,在触发该链接时自动执行该文件里的命令,从而实现git 自动拉取。
2.测试链接是否生效,文件是否有被访问到
如上图所示,当出现绿色时表示此链接被访问到,当出现红色️标志则表示文件没有被访问。以此排查链接问题还是代码问题。
-
[x] 至此Github方面完成。
PHP代码部署
1.添加钩子文件 执行shell命令
下面展示一些
内联代码片
。
<?php //git webhook 自动部署脚本 $requestBody = file_get_contents("php://input"); //接收数据 if (empty($requestBody)) { //判断数据是不是空 die('send fail'); } $content = json_decode($requestBody, true); //数据转换 //若是主分支且提交数大于0 if ($content['ref']=='refs/heads/main') { //或将命令加入 shell里,看个人需求 git reset --hard origin/master && git clean -f $res = shell_exec('cd /www/wwwroot/xxxx/ && echo `sudo git pull` >> b.log');//PHP函数执行git命令 $res_log = '-------------------------'.PHP_EOL; $res_log .= ' 在' . date('Y-m-d H:i:s') . '向' . $content['repository']['name'] . '项目的' . $content['ref'] . '分支push'.$res; file_put_contents("git-webhook.txt", $res_log, FILE_APPEND);//将每次拉取信息追加写入到日志里 } ?>
-
[x] 至此命令 php shell部分已完成,可根据不同项目需求自行调试。
常见错误处理
1.php.ini 文件里shell 没有禁用 该错误比较常见,调试的时候很容易发现,就不再赘述。
处理方法 将php.ini 里的shell_exec删除,重启服务即可。
2. .git权限问题,将.git/目录下的文件权限组改成 www
一般不会出现,当出现权限报错,建议先检查一下文件目录是否为你设置的权限组.如果不是,可以使用一下命令修改文件权限组
//以www用户组为例 chown -R www:www file/
3.权限组问题
步步排查,当确定前面流程没有问题 而代码依然没有自动拉取时.手动执行以上shell 如果代码成功拉取,可以排除shell问题。打开日志记录,如果日志记录里的内容为空,可以尝试 使用将老版本替换为新版本的方法
4.出现类似报错 Host key verification failed.^M fatal: Could not read from remote rep……
5. 完结,至此你的webhook就可以工作了,修改文件并提交,查询日志。
本地环境 centos + php7.3 + nginx
以上就是关于web hooks服务器自动拉取代码php thinkphp6的详细内容,更多请关注亿码酷站其它相关文章!
关于web hooks服务器自动拉取代码php thinkphp6
—–文章转载自PHP中文网如有侵权请联系ymkuzhan@126.com删除
转载请注明来源:关于web hooks服务器自动拉取代码php thinkphp6
本文永久链接地址:https://www.ymkuzhan.com/29553.html
本文永久链接地址:https://www.ymkuzhan.com/29553.html
下载声明:
本站资源如无特殊说明默认解压密码为www.ymkuzhan.com建议使用WinRAR解压; 本站资源来源于用户分享、互换、购买以及网络收集等渠道,本站不提供任何技术服务及有偿服务,资源仅提供给大家学习研究请勿作它用。 赞助本站仅为维持服务器日常运行并非购买程序及源码费用因此不提供任何技术支持,如果你喜欢该程序,请购买正版! 版权声明:
下载本站资源学习研究的默认同意本站【版权声明】若本站提供的资源侵犯到你的权益,请提交版权证明文件至邮箱ymkuzhan#126.com(将#替换为@)站长将会在三个工作日内为您删除。 免责声明:
您好,本站所有资源(包括但不限于:源码、素材、工具、字体、图像、模板等)均为用户分享、互换、购买以及网络收集而来,并未取得原始权利人授权,因此禁止一切商用行为,仅可用于个人研究学习使用。请务必于下载后24小时内彻底删除,一切因下载人使用所引起的法律相关责任,包括但不限于:侵权,索赔,法律责任,刑事责任等相关责任,全部由下载人/使用人,全部承担。以上说明,一经发布视为您已全部阅读,理解、同意以上内容,如对以上内容持有异议,请勿下载,谢谢配合!支持正版,人人有责,如不慎对您的合法权益构成侵犯,请联系我们对相应内容进行删除,谢谢!