2011-04-05 82 views
0

我有一个Linode(Ubuntu 9.10,但升级不成问题),我运行了几个PHP应用程序并运行了Sinatra和Rails 2应用程序。我试图部署一些新的Rails(3)应用程序,但这样做,打破了几乎所有的东西:)。在混合(使用PHP和其他Ruby应用程序)环境下部署几个Rails应用程序

我的要求很简单:

  • 的PHP应用程序种类-的使“LAMP”的要求,即使在不同的端口上运行,则:80,后面的一些代理的罚款。
  • 我想运行几个Rails3和Rails2应用程序。
  • 我需要在这些应用程序中使用不同版本的宝石。

  • SOLR,MongoDB,MySQL和Resque等附加服务已安装并正在运行,所以目前不是问题,但仍是一项要求。

之前,我刚一Rails应用程序背后的Phusion客运简单的末日app,其中全球安装了宝石。 在引入Rails 3应用程序时,会出现gem-version冲突,所以我安装了RVM,但是严重破坏了现有的应用程序。

我遇到的问题的示例:现有的应用程序是,它的所有宝石都打包在供应商/宝石中,其中一些宝石在rubygems.org上不可用。我无法让RVM识别这些宝石。我继续从一个问题(RVM不承认供应商/宝石,耙宝石:安装不安装,Rails和rubygems版本之间的冲突等)到其他问题。我不是在为这个问题的每一个问题寻求解决方案。

新的Rails 3应用程序更喜欢Ruby 1.9,但Passenger已针对红宝石1.8.7安装。我已经设法降级这些Rails3应用程序,所以它们可以在1.8.7上工作,但是一个允许我使用任何Ruby版本的解决方案最适合该应用程序,这对我来说是最适合的。

你会如何设置这样的服务器? 请问你首先设置了这样的服务器吗?有没有负担得起的商业解决方案呢?或者我应该为每个应用程序寻求诸如虚拟机的解决方案?关于负载和使用情况:这主要用于个人和演示使用:所以每个应用程序必须每天最多提供800次网页浏览量:非常非常低的使用率(实际的重用应用程序和客户端项目的部署是在专用服务器上完成的) 。

回答

0

For Rails 2/3:不是一件容易的事,但可以做到:http://jeremy.wordpress.com/2010/08/19/ruby-rvm-passenger-rails-bundler-in-development/只要确保您使用的是最新的rvm,乘客。

对于PHP和Rails,我使用nginx与乘客,它工作正常。我有一个默认的nginx php配置和默认乘客添加设置的Rails。

+0

那么,你的设置是ngix + passenger + fcgi?和低谷,你可以提供混合的PHP和Ruby应用程序?从这个基本集合中搜索多个Ruby版本的解决方案可能是一个好的开始。 – berkes 2011-04-05 20:18:50

+0

的确,我目前的设置是nginx + fcgi(php)+ passenger(Rails 2.3)。我正在使用新的passenger/nginx/rvm更新我的服务器以支持Rails 3。 – Zepplock 2011-04-05 21:05:44