以私人仓库为例: 设置webhooks访问路径: [x] 至此Github方面完成。 下面展示一些 立即学习“PHP免费学习笔记(深入)”; [x] 至此命令 php shell部分已完成,可根据不同项目需求自行调试。
github 准备事项
1.在仓库settings里添加webhooks

1.创建完仓库之后,点击settings。

以我自己项目为例 ,框架使用的是tp6。在public/下创建一个名为basic.php的文件,目的在于当代码推送至服务器上时,github可以访问到并且可以执行的一个文件。该文件用于执行shell 命令,在触发该链接时自动执行该文件里的命令,从而实现git 自动拉取。
2.测试链接是否生效,文件是否有被访问到

如上图所示,当出现绿色✅时表示此链接被访问到,当出现红色⚠️标志则表示文件没有被访问。以此排查链接问题还是代码问题。
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);//将每次拉取信息追加写入到日志里
}
?>常见错误处理
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......
是因为权限秘钥出现了问题,在www权限组里没有创建连接github的公钥
这里作者使用的是此方法解决,如果有大佬有其他解决方案,欢迎私信或评论区留言。
vim 打开 /etc/sudoers 在root下添加一行 www 执行sudo 权限免密码
5. 完结,至此你的webhook就可以工作了,修改文件并提交,查询日志。

本地环境 centos + php7.3 + nginx
0
0
相关文章
thinkphp ajax请求接收不到数据怎么回事
thinkphp如何进行跨库或多数据源查询
thinkphp JWT用户认证和无状态登录如何实现
thinkphp使用composer安装时报错如何处理
thinkphp命令行下执行脚本报错怎么办
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。
245
2023.07.27
Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。
519
2023.08.04
tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
244
2024.02.23
当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
629
2024.07.09
解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。
3613
2024.08.07
本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。
0
2026.03.03
热门下载
相关下载
精品课程





