Aar*_*egh 7 apache ruby-on-rails passenger
我有一台主要运行Ruby 1.8.7的服务器,但现在我有一个需要1.9.3的Rails 3.2应用程序.我已经安装了Passenger 4,因为它支持基于每个虚拟服务器运行多个Rubies的能力.
但是,看起来虽然您可以分配特定的Ruby,但应用程序无法访问该Ruby的gemset.所以我的虚拟服务器配置了1.9.3 Ruby,正如我的应用程序现在给出的错误页面所确认的那样:
Ruby interpreter command
/home/aaron/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
Run Code Online (Sandbox Code Playgroud)
但是GEM_HOME参数讲述了一个不同的故事:
GEM_HOME = /home/aaron/.rvm/gems/ruby-1.8.7-p352
Run Code Online (Sandbox Code Playgroud)
查看Passenger 4的配置指令,我看不到指定不同gemset的方法.我错过了什么,或者这个东西还没准备好迎接黄金时段?
Tom*_*art 23
从您的gemset目录运行:
$ passenger-config --ruby-command
Run Code Online (Sandbox Code Playgroud)
它会告诉你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
Run Code Online (Sandbox Code Playgroud)
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;
}
Run Code Online (Sandbox Code Playgroud)
nginx.conf :(适用于新乘客4.0.17)
http {
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
}
Run Code Online (Sandbox Code Playgroud)
只需从你的gemset dir运行:
$ passenger-status
Run Code Online (Sandbox Code Playgroud)
它将检查是否passenger_native_support.so可用.根据您的RVM安装,您可能需要运行它rvmsudo
$ rvmsudo passenger-status
Run Code Online (Sandbox Code Playgroud)
对于Debian/Ubuntu,现在有nginx和乘客的二进制包可以使安装更容易.
小智 7
正如Tombart指出的那样:如果您使用预编译的Passenger模块(在我的情况下用于Apache2),您最终会启动并运行系统.
但是,如果使用RVM,我偶然发现你需要使用"包装器目录" 在Apache vhost配置中选择正确的RVM ruby版本和gemet:
PassengerRuby /home/of_your_ruby_user/.rvm/wrappers/ruby-x.y.z-p123@gemset/ruby
Run Code Online (Sandbox Code Playgroud)
这样Passenger就知道如何找到相对于这个目录的正确gemset(../../gems/ruby-x.y.z-p123@gemset/gems).否则Passenger将使用"标准ruby gemset",如果你想运行具有相同ruby版本的多个应用程序,这是奇怪的.我只能猜测这与Nginx类似.
| 归档时间: |
|
| 查看次数: |
8468 次 |
| 最近记录: |