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

在AlmaLinux 8的CPanel中配置Node.js应用管理器解决路径异常

解决CPanel Application Manager部署Node.js应用路由失效问题

步骤1:检查Application Manager基础配置

  • 登录CPanel,打开Application Manager,点击目标应用(test)的「Edit」按钮
  • 确认以下配置项:
    • Root Directory:指向你的Node应用实际根目录(例如/home/你的用户名/node-app,而非public_html/test)
    • Application URL:设置为/test
    • Startup File:填写你本地启动服务器的入口文件(如server.js、app.js)
    • Node.js Version:与你本地开发使用的版本保持一致(避免版本兼容问题)

步骤2:确保Node.js应用路由配置正确

针对Express框架的常规路由

如果是多页面或API应用,确保路由定义与访问路径匹配:

// 方式1:带完整前缀(对应Application URL为/test)
app.get('/test/page2', (req, res) => {
  res.send('Page 2 内容');
});

// 方式2:相对路由(推荐,因为Application Manager会自动处理前缀)
app.get('/page2', (req, res) => {
  res.send('Page 2 内容');
});

针对单页应用(React/Vue等)

如果是前端单页应用,需添加catch-all路由,让所有非静态文件请求转发到入口HTML:

const path = require('path');
// 先配置静态文件目录(如build/dist)
app.use(express.static(path.join(__dirname, 'build')));

// 捕获所有非静态请求,转发到index.html
app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

步骤3:配置Passenger请求转发规则

CPanel的Passenger默认可能仅转发根路径请求,需确保所有/test/*请求都能被Node应用处理:

  1. 在你的Node应用根目录下创建public文件夹(若不存在)
  2. 回到Application Manager的应用编辑页面,将Document Root设置为/home/你的用户名/node-app/public(即应用根目录下的public文件夹)
  3. 点击「Save」后,重启应用

备选方案:自定义.htaccess规则(若上述步骤无效)

在Node应用的根目录下创建.htaccess文件,添加以下规则(替换server.js为你的启动文件,/test为应用URL):

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/test/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /test/server.js/$1 [PT]

保存后重启应用即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:53:16