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

Passenger未采用RVM默认Ruby版本导致Nginx启动报错如何解决?

问题解决方案

该问题的核心原因是Passenger默认调用系统全局安装的旧版Ruby 2.3,未识别RVM管理的Ruby 3.0.2版本,可按以下步骤修复:

步骤1:修复RVM wrapper脚本

登录有权限执行rvm命令的普通用户,依次执行以下命令:

rvmsudo rvm get stable && rvm reload && rvmsudo rvm repair all

如果执行后仍提示wrapper脚本异常,继续执行:

rvmsudo rvm wrapper ruby-3.0.2 --no-prefix --all

步骤2:获取RVM管理的Ruby 3.0.2完整路径

仍在普通用户权限下执行以下命令,获取Passenger可识别的Ruby路径:

passenger-config about ruby-command

执行成功后会输出类似如下内容,复制Command对应的值备用:

Command: /usr/local/rvm/wrappers/ruby-3.0.2/ruby
Version: ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]

步骤3:修改Nginx Passenger配置

切换到root用户,编辑Nginx配置文件:

  • 全局修改默认Ruby版本:编辑/etc/nginx/nginx.conf,在http块中添加/修改配置
  • 仅修改单个站点的Ruby版本:编辑对应站点的配置文件,在server块中添加/修改配置

配置内容如下,将路径替换为你上一步复制的路径:

passenger_ruby /usr/local/rvm/wrappers/ruby-3.0.2/ruby;

步骤4:升级Bundler版本适配新Ruby

回到普通用户,进入应用根目录执行以下命令,安装Bundler 2.x版本并重装依赖:

gem install bundler -v '~> 2.3'
bundle install

步骤5:重启Nginx验证

切换到root用户,先检查配置语法是否正确:

nginx -t

提示语法无误后重启Nginx服务:

systemctl restart nginx

重启后访问应用即可验证是否恢复正常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:54:03