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

如何在DigitalOcean上生效网站Git更新?pm2重启仍无效

解决DigitalOcean上Git推送后代码不更新的问题

排查与修复步骤

  1. 先确认服务器代码是否同步

    • 登录DigitalOcean服务器,进入项目根目录,执行git pull手动拉取代码。如果拉取失败,检查Git远程地址是否正确、本地文件是否有冲突,或者服务器是否有仓库的访问权限;如果拉取成功但仍不生效,说明问题不在代码同步环节。
  2. 检查pm2进程状态与配置

    • 执行pm2 list查看index.js对应的进程是否处于online状态。
    • 用pm2 show <进程ID/名称>确认进程的启动目录是否为当前项目根目录,避免pm2指向了旧的代码路径。
    • 尝试执行pm2 restart <进程ID/名称> --update-env,强制重启并更新环境变量,部分场景下缓存的环境变量会导致新代码不生效。
  3. 排查缓存问题

    • 若涉及前端静态资源,浏览器可能缓存了旧文件。可以给静态资源文件名添加哈希后缀(如app.abc123.js),或在服务器配置中添加缓存控制头强制刷新。
    • 如果用了Nginx反向代理,执行nginx -s reload重启服务,清除代理层的缓存。
  4. 确认依赖是否更新

    • 新代码若新增了依赖,拉取后需执行npm install或yarn install更新依赖,再重启pm2进程。
    • 可以把依赖更新步骤加入pm2的启动脚本,避免每次手动遗漏。
  5. 查看日志定位错误

    • 执行pm2 logs <进程ID/名称>,检查服务器运行日志是否有模块缺失、语法错误等报错,这类问题会导致新代码无法正常启动,服务器可能 fallback 到旧进程。
    • 查看Nginx错误日志(通常路径为/var/log/nginx/error.log),确认是否存在请求转发异常。

额外注意点

  • 若使用Git webhook自动部署,检查webhook脚本是否能正确执行git pull和pm2 restart,同时确保脚本拥有足够的执行权限,避免因权限不足导致操作失败。
  • 如果pm2路径配置错误,先执行pm2 delete <进程ID>删除旧进程,再到项目根目录重新执行pm2 start index.js。
  • 前端项目需确认构建步骤:React/Vue等项目拉取代码后要执行npm run build,并确保服务器指向构建后的dist目录,再重启服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:00:47