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

如何让Web服务器自动从Bitbucket仓库同步更新代码?

实现Bitbucket master分支变更自动同步到Web服务器的方案

下面是两种可落地的实现方式,按需选择即可:


方案1:Webhook + 服务器端触发脚本(实时同步,首选方案)

全程配置完成后可实现推送即同步,无延迟:

  • 第一步:服务器端提前配置拉取权限
    在Web服务器的站点根目录初始化git仓库,绑定你对应的Bitbucket远程仓库地址,配置好SSH密钥保证可以无交互拉取master分支的代码,先手动执行一次git pull origin master确认没有权限、冲突问题。
  • 第二步:编写同步执行脚本
    在服务器非公开目录下新建脚本文件,比如/opt/sync_site.sh,参考内容如下:
    #!/bin/bash
    # 替换成你自己的站点根目录实际路径
    cd /var/www/your_site_root
    # 可选:重置本地所有未提交的变更,避免本地修改导致拉取冲突,不需要可删除
    git reset --hard origin/master
    # 拉取master分支最新代码
    git pull origin master
    # 可选:如果你的站点需要构建,在此处添加对应构建命令,比如前端项目的npm install && npm run build
    # 可选:如果需要调整目录权限保证Web服务可读取,在此处添加对应权限命令,比如chown -R www-data:www-data /var/www/your_site_root
    # 可选:如果是动态站点需要重启服务,在此处添加对应重启命令,比如重载php-fpm、重启Node服务等
    
    脚本写完后执行chmod +x /opt/sync_site.sh给脚本添加执行权限。
  • 第三步:配置服务器端Webhook接收接口
    用你熟悉的方式监听一个HTTP接口,比如用Python Flask、Nginx配合CGI都可以,接口逻辑只需要做两件事:校验你自己预设的请求密钥(防止恶意请求触发同步),校验通过就执行上面的同步脚本。
  • 第四步:Bitbucket端配置Webhook
    进入你的Bitbucket仓库设置页面,找到Webhooks入口,新建Webhook,URL填写你刚才配置的服务器接口地址,触发条件选择「Repository push」事件保存即可,后续只要有代码推送到仓库,就会自动触发服务器同步。

方案2:定时拉取(配置最简单,可接受延迟的情况下使用)

如果不需要实时同步,能接受1-5分钟的延迟,直接用定时任务实现即可,不需要配置Webhook:

  • 同样先完成站点目录的git仓库初始化、SSH权限配置,手动拉取验证可用。
  • 复用上面写的/opt/sync_site.sh同步脚本。
  • 执行crontab -e添加定时任务,比如设置每2分钟拉取一次:
    */2 * * * * /bin/bash /opt/sync_site.sh >> /var/log/site_sync.log 2>&1
    
    保存后定时任务自动生效,同步日志会写入/var/log/site_sync.log方便后续排查问题。

注意事项

  • 如果你的站点配置了静态资源缓存,可以在同步脚本最后添加清理缓存的命令,保证访问时直接拿到最新资源。
  • 生产环境使用的话建议在脚本里添加同步校验逻辑,拉取失败时自动回滚到上一个可用版本,避免异常影响站点访问。

内容的提问来源于stack exchange,提问作者GavTheWood

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:27:05