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

Nginx + Passenger Enterprise部署Node.js应用提示node未找到求助

Nginx + Passenger 找不到 Node.js 的解决方法

核心原因

手动通过root、nginx用户等执行node -v时,处于登录shell环境,PATH变量包含了Node.js的安装路径;但Nginx作为系统服务启动时使用非登录shell,默认PATH仅包含系统基础目录,不包含自定义安装的Node.js路径,因此Passenger无法找到node命令。

解决方案

方案1:直接指定Node.js绝对路径

  1. 执行which node命令,获取Node.js的绝对路径(例如输出/usr/local/bin/node)
  2. 在Nginx的server配置块中添加passenger_nodejs配置项:
server {
            listen  80;
            server_name     mysite.com;
            root    myapp_root/public;
            passenger_enabled on;
            passenger_app_type node;
            passenger_startup_file app.js;
            passenger_nodejs /usr/local/bin/node; # 替换为你的node绝对路径
  }
  1. 重启Nginx服务生效。

方案2:配置Passenger的PATH环境变量

如果需要让Passenger继承完整的系统PATH,可在Nginx全局http块中添加环境变量配置:

http {
    env PATH="/usr/local/bin:/usr/bin:/bin"; # 确保包含Node.js所在目录
    # 其他全局配置内容
}

修改后重启Nginx即可。

内容的提问来源于stack exchange,提问作者João Pina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 06:09:58