如何在Windows中为Ruby on Rails配置Apache 2.2?

时间:2008-09-29 14:13:49

标签: ruby-on-rails ruby apache

我正在尝试开始编写一些Ruby on Rails应用程序并且已经成功使用了Mongrel但是,我想将我的应用程序部署到Windows上的Apache 2.2实例中?我发现的所有教程似乎都已过时,适用于旧版本的Apache / Rails。

有没有人知道为Ruby on Rails应用程序配置Apache 2.2的最新教程?

5 个答案:

答案 0 :(得分:13)

编辑:至少在获得Phusion Passenger for Win之前,Apache + Mongrel是最佳选择。您可以在没有Mongrel的情况下使用Apache + FastCGI,但在实际负载下,您将获得(更多)僵尸进程和(更多)内存泄漏。

您也可以按照下面详述的相同方式查看代理Thin。然而,我在Thin on Win上遇到了一些不稳定因素,尽管它的速度要快得多。 AB(Apache Benchmark)是你的朋友!

在Windows上配置Apache + Mongrel与* nix没有太大区别。

基本上,您需要将进入Apache的请求代理到Mongrel。这可以归结为:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<VirtualHost localhost:80>
    ServerName www.myapp.comm
    DocumentRoot "C:/web/myapp/public"
    ProxyPass / http://www.myapp.com:3000/
    ProxyPassReverse / http://www.myapp.com:3000/
    ProxyPreserveHost On
</VirtualHost>

坚持使用httpd.conf(或httpd-vhost.conf,如果你包括它)。

它假设你要在3000端口运行mongrel,你的Rails根目录在C:\web\myapp,你将访问www.myapp.com上的应用程序。

在生产模式下运行rails app:

mongrel_rails start -p 3000 -e production

然后离开(实际上mongrel默认为端口3000,因此如果你愿意,可以跳过-p 3000。)

主要区别在于你不能在Windows上守护mongrel(即让它在后台运行)。相反,您可以使用mongrel_service gem将其安装为服务。

此外,运行群集更复杂,您将无法使用Capistrano。如果您想了解更多信息,请与我们联系。

答案 1 :(得分:3)

我是RoR的新手,并且在Windows Server 2008上尝试过同样的事情,这里有一些关于让mongrel作为服务进行的其他说明:

如果在安装mongrel_service时遇到编译错误:

gem install mongrel_service

尝试使用二进制文件,而不是指定您的平台:

gem install mongrel_service --platform x86-mswin32

此外,要实际安装该服务,您需要在RoR的app目录中运行此命令:

mongrel_rails service::install --name MyApp -e production -p 3001 -a 0.0.0.0

(或删除:

mongrel_rails service::remove --name MyApp

然后,您应该能够在Windows服务控制面板中启动/停止应用程序“MyApp”。

希望能有所帮助。

答案 2 :(得分:2)

目前,Mongrel无法正常使用Ruby 1.9,并且在执行命令mongrel_rails时会抛出“msvcrt-ruby18.dll not found”错误。

在这种情况下,瘦身似乎是现在唯一的选择。

答案 3 :(得分:1)

我只想将此文章添加到列表中。它解释了如何让Apache提供ruby文件,而无需安装任何其他应用程序。

http://editrocket.com/articles/ruby_apache_windows.html

答案 4 :(得分:0)

您可能想尝试Bitnami RubyStack