cPanel部署Next.js报错public_html目录不允许 如何在该目录安装Node.js

cPanel public_html目录部署Next.js操作指南
你子域名可以正常运行,说明Node.js环境、项目本身没有问题,按以下步骤操作即可完成主域名public_html目录部署:
- 进入cPanel文件管理器,清空
public_html目录下的所有默认文件和旧残留,避免路径冲突 - 把Next.js项目的根文件(package.json、next.config.js、源码文件夹等)直接上传到
public_html目录下,不要嵌套外层项目文件夹 - 打开cPanel的「Node.js 选择器」功能,点击创建新应用:
- 应用根目录选择
public_html - 应用URL选择你的主域名
- Node.js版本选择和子域名部署时完全一致的版本,避免兼容问题
- 启动文件按照你的Next.js版本填写:Page Router版本填
server.js,13+ App Router且开启了standalone打包模式的填.next/standalone/server.js
- 应用根目录选择
- 找到刚创建的Node.js应用点击编辑,先执行
npm install安装所有依赖,再执行npm run build完成项目打包 - 关键配置:在
public_html目录下新建.htaccess文件,写入以下规则,将请求代理到Node.js应用端口:
RewriteEngine On RewriteRule ^$ http://127.0.0.1:XXXX/ [P,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ http://127.0.0.1:XXXX/$1 [P,L]
把代码里的XXXX替换为Node.js应用详情页显示的分配端口即可
- 如果你开启了standalone打包模式,需要额外把项目根目录的
public文件夹复制到.next/standalone目录下,把.next/static文件夹复制到.next/standalone/.next目录下,避免静态资源加载失败 - 重启Node.js应用,清除浏览器缓存后访问主域名即可正常加载站点
如果不想重新配置,也可以直接将原有子域名对应的Node.js应用的根目录修改为public_html、应用URL修改为主域名,再按上述要求修改.htaccess规则后重启应用即可。
内容的提问来源于stack exchange,提问作者Mitesh K
相关产品推荐
相关产品推荐

