You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过GitHub自动更新多台本地XAMPP部署的PHP Web应用

多台XAMPP本地服务器自动同步GitHub更新方案

完全可以实现,以下是两种适配不同场景的落地方案:

方案一:定时轮询同步(推荐,适配绝大多数场景)

无需额外公网配置,实现成本最低,适合对更新实时性要求不高(可接受1~10分钟延迟)的场景:

  • 先在每台XAMPP机器上将项目仓库克隆到XAMPP的Web根目录(Windows默认路径C:\xampp\htdocs\项目名,Linux默认路径/opt/lampp/htdocs\项目名),执行git config --global credential.helper store保存Git凭证,避免后续拉取需要手动输入账号密码。
  • 编写同步脚本:Windows写bat脚本、Linux/macOS写sh脚本,脚本逻辑如下:
    1. 切换到项目根目录
    2. 执行git fetch origin拉取远程分支信息
    3. 对比本地当前分支哈希与远程最新分支哈希,不一致则执行git pull origin 你的主分支名
    4. 按需添加后续部署逻辑(比如前端项目的npm install、npm run build,后端项目的composer install、数据库迁移命令等)
    5. 同步结果写入本地日志文件,方便后续排查问题
  • 配置定时任务:Windows用「任务计划程序」设置脚本执行周期,Linux用crontab添加规则*/5 * * * * /path/to/你的同步脚本.sh,即可实现每5分钟自动检查一次更新。

方案二:Webhook推送同步

适合对更新实时性要求高、所有节点可暴露公网可访问HTTP接口的场景:

  • 在GitHub仓库的设置页找到Webhooks配置,添加推送事件触发的Webhook,回调地址填每台节点的同步接口地址(无固定公网IP的节点可以用内网穿透工具暴露本地HTTP端口)。
  • 在每台节点的XAMPP项目中写一个简单的同步接口(XAMPP默认支持PHP,直接写PHP脚本即可),接口逻辑:
    1. 校验GitHub Webhook的请求签名(可选,提升安全性,避免恶意请求触发同步)
    2. 验证通过后执行项目目录下的git pull命令和后续部署逻辑
    3. 返回同步结果给GitHub

通用注意事项

  • 所有节点的项目目录不要做未提交的本地修改,否则会导致Git Pull冲突,同步失败。本地专属配置文件(比如数据库配置、环境变量文件)请添加到.gitignore中单独管理,不要提交到远程仓库。
  • 可以在同步脚本中添加错误告警逻辑,同步失败时触发本地通知或者写错误日志,方便快速排查问题。

内容的提问来源于stack exchange,提问作者Muhammad Mutti Ur Rehman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:18:02