Rails 本身包含 a few links 以帮助您开始部署。前段时间我在你的船上,半小时内就开始使用Passenger和Apache(尽管我确实有一些简单的Apache经验)。
开始只是为了向自己证明你可以做到
这不是一个好主意,但最简单的“部署”方法如下(假设您已经将应用程序拉入部署环境,创建了数据库,并运行 rake db:migrate 和任何特定于应用程序的步骤,例如 Rails 3 上的 bundle install):
-
rails server -p 80 在 Rails 3 上(./script/server -p 80 在 Rails 2 上)。
- 没有第 2 步。
这必须在您拥有管理权限且端口 80 尚未被其他应用程序监听的机器上运行。这在很多方面都不是最理想的,其中最明显的是它不允许虚拟主机(即,它不会与从该服务器运行的其他“网站”合作),但这是一个很好的婴儿步骤脚进。
转到机器的 FQDN,或者实际上是任何解析为机器 IP 地址的主机名(通过主机文件或 A 记录),您就会看到您的应用程序。
现在做正确的事
您需要执行以下操作以使您的应用程序“加速”:
- 将其部署在 Apache 等网络服务器应用程序后面的虚拟主机后面
- 使用面向生产的部署设置(WEBrick 的单线程等因素使其不适合生产)
- 实际使用“生产”rails 环境
我将推荐一个非常非常典型的 Apache/Passenger 部署环境。原因是(至少在我看来)这个特定的堆栈在 Internet 上得到了最彻底的支持,因此如果您需要帮助,您将获得最轻松的时间。
1。设置 Apache
我不想听起来像一个工具,但设置 Apache(如果尚未在您的部署环境中设置)留给读者作为练习。它在不同平台上的差异也很大,以至于我无法编写一个包罗万象的指南。粗略地说,使用你的发行版的包管理器(对于 Ubuntu,这是apt-get)来连接它。
2。设置乘客
乘客安装更加容易。您只需运行one command,他们的指南将引导您完成所有步骤。此时,在您的 Rails 应用程序根目录中,您将能够运行 passenger start 而不是 rails s 以让 Passenger 担任 WEBrick 曾经担任的角色。
3。用 Apache 连接乘客
乘客指南fairly thoroughly documents,一步一步,如何设置。 Apache 的 VirtualHost 条目中的 ServerName 属性应设置为您的主机名。 Passenger 会从您提供给 Apache 的公共目录中“找到”Rails 应用程序,当您重新启动 Apache 时,服务器第一次收到对页面的请求时,Passenger 将连接您的 Rails 应用程序并开始提供文件。
我在编写本指南时并未执行这些步骤,因此我不确定这会在多大程度上自动完成,但请确保该站点已通过 a2ensite 启用(如果您'将这个VirtualHost 节点放在sites-available 目录中)并且通过a2enmod 启用该Passenger。
- 确保您的生产环境已准备就绪
这可能是您第一次使用生产环境。大多数 rake 任务不会自动作用于生产环境,但您可以通过在任何 rake 任务中包含
RAILS_ENV=production 来方便地强制它们执行。您很可能会运行的是rake db:migrate RAILS_ENV=production。 Rails 3 中的捆绑器独立于环境工作。
5。去
重新启动 Apache。如何做到这一点的细节会因发行版而异,所以你必须查一下。对于 Ubuntu,apache2ctl restart 为我做。
访问您在ServerName 中定义的主机名,您应该会看到您的应用程序启动并运行。