将rails app部署到生产环境

时间:2010-01-29 13:01:29

标签: ruby-on-rails deployment

我一直在玩一个rails应用程序,并通过在heroku上部署它来向客户展示更新。现在,客户希望它在服务器上设置...作为实时网站。

Heroku部署了rails应用程序非常简单,以至于无法在服务器上从头开始包裹我的头。

对于经验丰富的rails开发人员,需要做什么才能做到这一点?我的应用程序使用postgresql,服务器是linux服务器。客户声称他们已在服务器上安装了rails。

我是否只需要安装postgresql ...创建数据库...运行迁移和瞧?或者还有其他涉及的东西。到目前为止,我正在使用database.yml的开发部分...现在它将进行生产?

请提供一些解释该过程的指示和/或链接。

4 个答案:

答案 0 :(得分:1)

我认为capistrano网页上有一个很好的操作指南,可以从哪里开始。

答案 1 :(得分:1)

好吧,想一想:rails应用程序需要什么?

  1. 红宝石
  2. Rails(您用于应用的版本!)
  3. 您使用的Ruby宝石
  4. 您使用的Rails插件
  5. 具有正确登录/密码访问权限的数据库
  6. 如果您使用RAILS_ENV环境变量并将其设置为生产,则无需担心后续步骤,否则请记住生产环境!
    您可以使用rake db:schema:load来设置数据库,然后..确保它在启动时自动加载,确保您拥有所需的任何预加载数据,确保它可以从外部或从任何地方访问需要访问它。
    我不知道你的rails应用程序还有什么需要 - 当然,Capistrano是一个好主意,可以帮助你维护应用程序:)

答案 2 :(得分:1)

您可能需要先决定使用哪种服务器软件,因为这不是Heroku给您做出的决定。无论如何,这很容易,因为Phusion Passenger现在是Rails世界中的默认选择。 Passenger很容易设置 - 它可能是我见过的最好的命令行安装程序 - 并且文档非常好。

Slicehost有一系列文章,涵盖了为各种Linux版本设置所需的各种内容。他们真的很棒:

http://articles.slicehost.com/search?q=rails

您还需要了解如何使用Capistrano,这是大多数人用来部署Rails应用程序的。

答案 3 :(得分:0)

您是否有理由不能将Heroku用作生产环境?

编辑:

如果他们正在运行php网络服务器,他们可能已经拥有一台正常运行的apache服务器。如果是这种情况,您应该查看安装passenger并设置新数据库。

此时您可以自行复制应用程序,运行rake任务以完成所有设置,然后高枕无忧,或者您可以花时间学习如何使用capistrano以便可以重复部署应用程序。

我建议后者... capistrano真的不是那么棘手,假设您的应用程序设置相对合理,默认值应该让你在那里90%。