使用 rbenv 为 Rails 应用程序配置 nginx 和乘客

问题描述 投票:0回答:1

在我的 ubuntu 服务器上,我将 ruby 版本控制策略从使用

rvm
切换为
rbenv
。 当我重新启动 nginx 服务器时,出现此错误:

Bundler 无法找到 Gemfile 中定义的 gem 之一

但是,这个异常有点误导,因为另一条消息说可能的问题是:

应用程序可能在错误的 Ruby 解释器下运行。目前正在 /usr/bin/ruby2.7 下运行。

所以我确信问题是乘客引用了不正确的 ruby 解释器,因为我实际上正在使用 rbenv 运行 ruby 版本

3.2.4
。 我该如何解决这个问题?

ruby-on-rails ruby rbenv
1个回答
0
投票

首先你必须找到你的 Ruby 解释器在哪里。在 Linux 中:找到这一点的最简单方法是运行

which ruby

> which ruby
> /home/<SomeUserOnYourServer>/.rbenv/shims/ruby

然后转到

/etc/nginx/conf.d
编辑此文件。

  • 注释掉该行:

    passenger_ruby /usr/bin/passenger_free_ruby;

  • 添加此行以告诉乘客在哪里可以找到 ruby 翻译:

    passenger_ruby /home/devadmin/.rbenv/shims/ruby;

    # /etc/nginx/conf.d
    ### Begin automatically installed Phusion Passenger config snippet ###
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
    #passenger_ruby /usr/bin/passenger_free_ruby;
    passenger_ruby /home/devadmin/.rbenv/shims/ruby;
    
    passenger_instance_registry_dir /var/run/passenger-instreg;
    
    ### End automatically installed Phusion Passenger config snippet ###
    
  • 重新启动您的 nginx 服务器并查看它是否有效。

© www.soinside.com 2019 - 2024. All rights reserved.