码云gitee,利用PHP脚本拉取实现自动部署到服务器
-
前提:本地与服务器均已安装git,并且项目初始化已完成。
-
Webhook添加,我的码云 -> 点击相应项目A -> 管理-> WebHooks 设置 -> 添加;具体填写内容如下图所示
-
第一步,进入到添加页面
-
填写相关内容
-
gitee设置webhook完成
-
编写PHP脚本,不多说,直接帖码。修改好自定义选项,上传服务器后到gitee后台点击测试验证是否通过。
-
webhook.php
-
-
<?php $json = file_get_contents("php://input"); //获取请求参数 if (empty($json)) { die('request is empty'); } $data = json_decode($json, true); //$savePath = __DIR__;//本文件放在项目根目录的写法 $savePath = dirname(__DIR__);//这是TP写法,本文件放在public下 //密码 if($data['password']){ $password = '这里是gitee webhook设置的密码'; //验证密码是否正确 if ($data['password'] != $password) { header("HTTP/1.1 403 Forbidden"); die('非法提交'); } } //一定要在php.ini 配置文件中解除所有禁用 disable_funtions exec 方法 // git放弃修改,强制覆盖本地代码 echo shell_exec("cd {$savePath} && git checkout ."); // git checkout // echo shell_exec("cd {$savePath} && git pull {$gitPath} 2>&1"); $res = PHP_EOL . "pull start " . PHP_EOL; $res .= shell_exec("cd " . $savePath . " && git pull https:xxxxxxxxxx.git 2<&1 "); //代码仓库 一定要使用ssh方式不然每次都得输入密码 $res_log = PHP_EOL; $res_log .= $data['user_name'] . ' 在' . date('Y-m-d H:i:s') . '向' . $data['repository']['name'] ; $res_log .= '项目的' . $data['ref'] . '分支push了' . $data['total_commits_count'] . '个 '; $res_log .= 'commit:' . $data['commits']['message']; $res_log .= $res; $res_log .= "pull end -----------------------------------------------------" . PHP_EOL; //保存日志文件路径 注意开启日志写入权限 $filePath = $savePath . "/runtime/webhook/" . date('Y-m-d', time()) . ".txt"; if (!file_exists($filePath)) touch($filePath); file_put_contents($filePath, $res_log, FILE_APPEND);//写入日志到log文件中 if (isset($data['ref']) && $data['total_commits_count'] > 0) { $typeText = "\r\n更新正常\r\n"; $res_log .= $typeText; } else { $typeText = "\r\n无提交也更新\r\n"; $res_log .= $typeText; } echo $res_log; ?>
-
-
注意
-
-
php.ini 配置文件中解除所有禁用 disable_funtions exec 方法
-
配置的密码校验
- 代码仓库 连接方式为SSH
-
-
到这里已完成,可以进行本地项目代码的修改后,push到gitee,测试是不是可以自动部署到线上服务器了
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤