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

如何将Next.js应用部署到Cpanel?部署失败问题排查求助

Next.js 部署到Cpanel运行异常解决方案

以下是你操作中的核心问题及对应修复步骤:

  • 启动命令配置错误
    你当前的启动命令调用了server.js,如果没有手写自定义的Next.js服务文件,项目中不存在这个文件会直接导致启动失败。你可以把package.json中的start命令修改为:
    "start": "NODE_ENV=production node_modules/.bin/next start -p 你的Cpanel分配的Node应用端口"
    
    注意端口必须填写Cpanel Node.js配置页分配的专属端口,不可自定义填写,否则服务无法被反向代理到公网。
  • 缺失必要的打包产物
    打包后上传时要确认包含了.next文件夹,这是Next.js编译后的核心产物目录,漏传会导致服务启动后找不到页面资源。
  • Cpanel Node应用配置错误
    你当前站点直接展示文件夹结构,说明Web服务器没有把请求转发到Node服务,而是直接读取了站点根目录的静态文件:
    1. 确认Node应用的根路径选择的是你上传Next.js项目的文件夹,不是默认的public_html目录
    2. 启动文件配置为node_modules/.bin/next(如果使用自定义启动脚本则对应填写你的脚本路径,同时要确认脚本逻辑无异常)
    3. 公共文件夹路径配置为项目的public目录
  • 反向代理规则缺失
    在项目根目录的.htaccess文件中添加以下规则,将所有请求转发到Node服务端口:

    RewriteEngine On
    RewriteRule ^$ http://127.0.0.1:你的Cpanel分配的Node应用端口/ [P,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ http://127.0.0.1:你的Cpanel分配的Node应用端口/$1 [P,L]

  • 关于npm警告的处理
    该警告不影响服务正常运行,添加.npmrc配置后也可以直接通过node命令启动服务,避免npm调用的node路径不匹配问题:
    NODE_ENV=production node node_modules/.bin/next start -p 你的Cpanel分配的Node应用端口
    

额外注意:你使用的Node 14.17.3仅支持Next.js 12及以下版本,如果你的项目使用更高版本的Next.js,需要降级到12.x LTS版本后重新打包上传。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:48:02