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

在CPanel上自动部署Next JS应用:提交代码触发构建方案咨询

几种可行的自动构建方案

方案1:GitHub Action通过SSH远程执行构建命令(最实用)

这是最直接的路子,文件同步完直接连服务器跑构建和重启命令:

  • 先在GitHub仓库的Secrets里存好cPanel服务器的SSH私钥(命名SSH_PRIVATE_KEY)、服务器地址(SSH_HOST)、用户名(SSH_USER)
  • 然后在你的GitHub Action workflow文件里,加一段同步后的执行步骤:
    - name: 远程执行构建与重启
      uses: appleboy/ssh-action@v1.0.3
      with:
        host: ${{ secrets.SSH_HOST }}
        username: ${{ secrets.SSH_USER }}
        key: ${{ secrets.SSH_PRIVATE_KEY }}
        script: |
          cd /你项目在cPanel上的绝对路径
          npm install
          npm run build
          pm2 restart 你的应用名称 # 要是用pm2管理进程的话
    
  • 要是不用pm2,也可以用cPanel自带的Node.js应用管理器的重启命令,比如passenger-config restart-app /你项目的路径,这个命令可以在cPanel的Node.js设置页面找到

方案2:调用cPanel UAPI触发构建

不想用SSH的话,可以通过cPanel的API来执行脚本:

  • 先在cPanel里生成API令牌,得确保令牌有执行Shell命令的权限
  • 然后在GitHub Action里加一个HTTP请求步骤,调用UAPI接口跑构建脚本:
    - name: 调用cPanel API执行构建
      run: |
        curl -u "${{ secrets.CPANEL_USER }}:${{ secrets.CPANEL_API_TOKEN }}" \
        https://${{ secrets.CPANEL_HOST }}:2083/execute/Shell/exec \
        -d command="cd /项目路径 && npm install && npm run build && pm2 restart 你的应用名称"
    
  • 注意:有些主机商可能禁用了Shell执行权限,得先确认你的主机支持

方案3:服务器端文件监控钩子(被动触发)

要是想让服务器自己检测文件变化再触发构建,可以用文件系统监控工具:

  • 在cPanel服务器上装inotify-tools,这个需要root权限,没有的话得找主机商开
  • 写个监控脚本,监听项目目录的文件变更,一旦有更新就跑构建:
    #!/bin/bash
    while inotifywait -r -e modify,create,delete /项目绝对路径; do
      cd /项目绝对路径
      npm install
      npm run build
      pm2 restart 你的应用名称
    done
    
  • 用nohup ./监控脚本名 &或者pm2把这个脚本挂后台,保证一直运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 13:33:25