繁体   English   中英

同一服务器上不同Ruby版本上的多个Rails应用

[英]Multiple Rails apps on different Ruby versions on the same server

在RubyMine中,我可以选择项目的目标Ruby版本并运行它。

现在开始生产。

我们有两种变体来构建Rails应用程序的主机:

  • Apache + Phusion乘客
  • Nginx +独角兽

如何在为每种Ruby版本构建的两个Rails应用程序的每个配置上运行?

要求:两个应用程序都应在同一台服务器上,不同的虚拟主机上运行。

已安装RVM。

部署应用程序时,一种选择不同Ruby版本的简单方法是使用Capistrano进行部署。 在对应用程序进行验证之后,是时候向Capfile添加一些行了

您的Capfile应该看起来像这样

require 'capistrano/setup'

# Include default deployment tasks
require 'capistrano/deploy'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
require 'capistrano/rvm'

这样,您就可以将特殊的RVM选项加载到Capistrano中,从而可以指定要使用的红宝石版本。

要指定一个特定的Ruby使用的版本,你可以添加一行到您deploy.rb系统范围的部署选项,或者您的production.rbstaging.rb如果你想每个服务器的不同版本的红宝石。

通过添加以下行,您可以指定所需的Ruby版本:

set :rvm_ruby_version, '2.0.0-p247'

部署应用程序后,您仍然必须指定乘客将使用的红宝石版本。 您可以通过编辑特定于站点或子域的apache配置文件来指定此设置。 编辑Apache配置文件时。

<VirtualHost *:80>
    PassengerRuby /home/someuser/.rvm/wrappers/<ruby-version-here>/ruby
    ******
</VirtualHost>

通过先执行rvm use <ruby version> ,然后执行which ruby应该可以为您提供在VirtualHost文件中输入的路径,可以查看所需的rvm use <ruby version>

希望对你有用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM