【发布时间】:2012-02-08 23:16:24
【问题描述】:
我们在开发和生产中使用 Ruby 1.8.7 以及各种版本的 rails。我们想升级到 Ruby 1.9.2。在不关闭使用 ruby 1.8.7 的现有网站的情况下,在生产中升级到 ruby 1.9.2 的过程是什么?我们正在使用 apache + 乘客,但没有 RVM?
【问题讨论】:
我们在开发和生产中使用 Ruby 1.8.7 以及各种版本的 rails。我们想升级到 Ruby 1.9.2。在不关闭使用 ruby 1.8.7 的现有网站的情况下,在生产中升级到 ruby 1.9.2 的过程是什么?我们正在使用 apache + 乘客,但没有 RVM?
【问题讨论】:
您可以仅将 apache 用作代理,并为每个项目运行单独的 Web 服务器(如乘客独立或独角兽)。您可以在部署期间启动服务器并将虚拟主机重定向到各个端口。如果您设法为每个项目设置环境以指向它自己的 ruby 版本,您甚至不需要 rvm。
【讨论】:
如果您需要同时运行两个版本,那您一定会很开心,因为大部分解决方案(例如乘客)一次只能运行一个版本的 ruby。我自己通过使用 rvm 安装多个版本来解决这个问题,让 apache/passenger 运行一个版本,让 nginx/passenger 运行另一个版本。然后我设置需要 nginx/passenger 版本的站点通过 apache 代理传递给它。
【讨论】: