---
title: Gitee Webhook自动部署系统
description: 这是一个基于 Gitee Webhook 的自动部署系统，能够实现代码提交后自动部署到服务器。通过配置 Webhook，当代码推送到 Gitee 仓库时，系统会
author: chaihongjun
category: backend
published: 2025-10-20
url: https://chaihongjun.me/backend/55.html
---

# Gitee Webhook自动部署系统

## 项目简介

这是一个基于 Gitee Webhook 的自动部署系统，能够实现代码提交后自动部署到服务器。通过配置 Webhook，当代码推送到 Gitee 仓库时，系统会自动将代码部署到指定的服务器目录。

## 系统要求

> ·PHP 5.6+ ·Git ·Linux/Unix 服务器环境 ·网站目录写权限

## 文件结构

MDBLOCK0

## 配置说明

### 脚本配置参数

编辑 MDBLOCK1 中的配置区域：
MDBLOCK2

### 关键配置说明

#### MDBLOCK3（目标目录配置）

-
设置目录名（如 'dist'）：只部署该目录的内容

-
留空（''）：部署整个仓库的所有内容

#### MDBLOCK4（变化检查配置）

-
MDBLOCK5：智能部署，只有目标目录有变化时才部署

-
MDBLOCK6：强制部署，任何提交都会触发部署

##### 配置组合使用示例

| TARGET_DIR | CHECK_TARGET_CHANGES | 部署行为 |
| --- | --- | --- ||
| MDBLOCK7 | MDBLOCK8 | 只有 MDBLOCK9 目录变化时才部署 |
| MDBLOCK10 | MDBLOCK11 | 任何提交都部署 MDBLOCK12 目录 |
| MDBLOCK13 | MDBLOCK14/MDBLOCK15 | 任何提交都部署整个仓库 |

### Gitee 仓库配置

- #### 创建 Webhook

在 Gitee 仓库中设置 Webhook：

-
URL: http://你的域名/deploy/webhook.php

-
WebHook 密码: 与脚本中 SECRET_KEY 一致

-
触发事件: 选择 Push 事件

-
是否激活: 是

-
进入仓库 → 管理 → WebHooks

-
添加WebHook

-
配置参数：

- #### 测试Webhook

保存后点击 测试，应该收到成功响应：
MDBLOCK16

### 服务器部署步骤

#### 初始部署

MDBLOCK17

#### 验证部署

访问 Webhook URL 测试连通性：
MDBLOCK18
应该看到提示：Only POST requests allowed

### 日常使用流程

- ### 本地开发

MDBLOCK19
- #### 自动触发部署

  推送代码后的自动流程：

-
Gitee 自动发送 Webhook 请求到服务器

-
服务器验证请求合法性

-
检查目标目录变化（如果启用）

-
执行部署操作

-
返回部署结果

- #### 查看部署日志

MDBLOCK20

### 部署行为说明

#### 保护机制

-
MDBLOCK21 目录及其所有内容受到完全保护

-
部署过程中不会删除或覆盖保护目录

-
保护目录包括：MDBLOCK22、MDBLOCK23

#### 清理操作

部署时会清理网站根目录，但：

-
保留保护目录和文件

-
删除其他所有文件和目录

-
然后从仓库复制新文件

#### 权限设置

部署完成后自动设置：

-
文件所有者：MDBLOCK24

-
Webhook 脚本权限：MDBLOCK25

#### 故障排除

##### 常见问题

Webhook 测试失败

-
检查 URL 是否正确

-
验证 Secret 是否匹配

-
查看服务器错误日志

部署失败

-
检查 Git 路径配置

-
验证目录权限

-
查看 MDBLOCK26 详细日志

##### 文件权限问题

MDBLOCK27

#### 日志分析

查看 MDBLOCK28 文件，关注关键信息：

=== Webhook 请求开始 === - 请求开始标记

-
MDBLOCK29 - 请求开始标记

-
MDBLOCK30 - 接收到的事件类型

-
MDBLOCK31 - 变化检测结果

-
MDBLOCK32 - 执行的系统命令和输出

-
MDBLOCK33 - 部署结果

-
MDBLOCK34 - 错误信息

#### 维护建议

##### 日志管理

MDBLOCK35

#### 安全建议

-
定期更换 Webhook 密码

-
限制 Webhook URL 访问权限

-
监控部署日志异常

#### 性能优化

-
对于大仓库，考虑使用增量部署

-
定期清理临时文件

-
监控服务器资源使用

#### 注意事项

-
首次部署需要手动将 Webhook 脚本放到服务器

-
保护目录确保部署脚本和日志不会被意外删除

-
权限设置必须正确，否则部署可能失败

-
定期维护清理日志文件，避免磁盘空间不足

这个系统能够有效实现代码的自动部署，大大提高了开发部署的效率。

webhook.php: ![](https://chaihongjun.me/public/static/js/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif)[webhook.php.txt](https://chaihongjun.me/public/uploads/files/20251020/1760921405965091.txt)

---

> 本文首发于 [chaihongjun.me | 柴宏俊 web 技术学习笔记](https://chaihongjun.me/backend/55.html)，采用 CC BY-NC-ND 4.0 协议，转载请保留出处与链接。
