【问题标题】:Deploying several Rails apps on a mixed (with PHP and other Ruby apps) environment在混合(使用 PHP 和其他 Ruby 应用程序)环境中部署多个 Rails 应用程序
【发布时间】:2011-07-30 05:12:16
【问题描述】:

我有一个 Linode(Ubuntu 9.10,但升级不是问题),我在其中运行一些 PHP 应用程序并运行了一个 Sinatra 和 Rails 2 应用程序。我尝试部署一些新的 Rails (3) 应用程序,但这样做几乎破坏了一切:)。

我的要求很简单:

  • PHP 应用程序有点要求“LAMP”,即使它在不同的端口上运行,然后 :80,在某些代理后面也可以。
  • 我想运行几个 Rails3 和 Rails2 应用程序。
  • 我需要在这些应用程序中使用不同版本的 gem。

  • SOLR、MongoDB、MySQL 和 Resque 等附加服务已安装并运行,因此目前不是问题,但仍是要求。

以前,我只有一个 Rails 应用程序和一个简单的 Sinatra 应用程序支持 Phusion Passenger,这些 gem 安装在全球范围内。 在引入 Rails 3 应用程序时,会出现 gem-version-conflicts,所以我安装了 RVM,但这严重破坏了现有应用程序。

我遇到的问题的一个例子:现有的应用程序是Tracks,它的所有 gem 都打包在 vendor/gems 中,其中一些在 ruby​​gems.org 上不可用。我无法让 RVM 识别这些宝石。我一直从一个问题(RVM 无法识别供应商/gems、rake gems:安装未安装、Rails 和 ruby​​gems 版本之间的冲突等)跑到其他问题。我不是为这个问题中的每一个问题寻求解决方案。

新的 Rails 3 应用更喜欢 Ruby 1.9,但针对 ruby​​ 1.8.7 安装了 Passenger。我已设法降级这些 Rails3 应用程序,因此它们可以在 1.8.7 上运行,但我更喜欢允许我使用最适合该应用程序的任何 ruby​​ 版本的解决方案。

您将如何设置这样的服务器? 您首先设置这样的服务器吗?是否有负担得起的商业解决方案?或者我应该为每个应用寻找解决方案,例如虚拟机?关于负载和使用:这主要用于个人和演示使用:因此每个应用程序必须每天提供最多 800 次浏览量:非常非常低的使用率(重度使用的应用程序和客户端项目的实际部署是在专用服务器上完成的) .

【问题讨论】:

    标签: php ruby-on-rails apache hosting passenger


    【解决方案1】:

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

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

    【讨论】:

    • 那么,你的设置是ngix+passenger+fcgi?并且可以提供混合的 PHP 和 Ruby 应用程序?从该基本集合中搜索多个 Ruby 版本的解决方案可能是一个好的开始。
    • 确实,我目前的设置是 nginx + fcgi(php) + Passenger(Rails 2.3)。我正在使用新的乘客/nginx/rvm 更新我的服务器以支持 Rails 3。
    猜你喜欢
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多