gpt4 book ai didi

ruby-on-rails - 带有PassengerRuby和不同 gem 套装的Passenger 4

转载 作者:行者123 更新时间:2023-12-04 03:44:31 26 4
gpt4 key购买 nike

我有一个主要运行 Ruby 1.8.7 的服务器,但现在我有一个需要 1.9.3 的 Rails 3.2 应用程序。我安装了Passenger 4,因为它支持在每个虚拟服务器的基础上运行多个Ruby 的能力。

但是,虽然您可以分配特定的 Ruby,但应用程序似乎无权访问该 Ruby 的 gemset。所以我的虚拟服务器配置了 1.9.3 Ruby,正如我的应用程序现在提供的错误页面所确认的那样:

Ruby interpreter command
/home/aaron/.rvm/rubies/ruby-1.9.3-p0/bin/ruby

但是 GEM_HOME 参数讲述了一个不同的故事:
GEM_HOME = /home/aaron/.rvm/gems/ruby-1.8.7-p352

查看乘客 4 的配置指令,我发现无法指定不同的 gemset。我是不是遗漏了什么,或者这东西还没有准备好迎接黄金时段?

最佳答案

从您的 gemset 目录运行:

   $ passenger-config --ruby-command

它会告诉你 Apache 和 Nginx 的 ruby​​ 路径。
  Command: /home/deric/.rvm/wrappers/ruby-2.0.0-p247@my_gemset/ruby
Version: ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
To use in Apache: PassengerRuby /home/deric/.rvm/wrappers/ruby-2.0.0-p247@my_gemset/ruby
To use in Nginx : passenger_ruby /home/deric/.rvm/wrappers/ruby-2.0.0-p247@my_gemset/ruby

Nginx:对于Passenger 4,您可以指定多个ruby 版本。所以对于特定的服务器配置:

your_site.conf:
server {
listen 80;
root /home/aaron/web/public;
passenger_enabled on;
passenger_ruby /home/aaron/.rvm/wrappers/ruby-2.0.0-p247@your_gemset/ruby;
}

nginx.conf:(这适用于新乘客 4.0.17)
http {

passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;

}

只需从您的 gemset 目录运行:
   $ passenger-status

它将检查是否 passenger_native_support.so可用。根据您的 RVM 安装,您可能需要使用 rvmsudo 运行它。
   $ rvmsudo passenger-status

对于 Debian/Ubuntu,现在有 binary packages of nginx and passenger available这使得安装更容易。

关于ruby-on-rails - 带有PassengerRuby和不同 gem 套装的Passenger 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15582741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com