我正在尝试开始编写一些Ruby on Rails应用程序并且已经成功使用了Mongrel但是,我想将我的应用程序部署到Windows上的Apache 2.2实例中?我发现的所有教程似乎都已过时,适用于旧版本的Apache / Rails。
有没有人知道为Ruby on Rails应用程序配置Apache 2.2的最新教程?
答案 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文件,而无需安装任何其他应用程序。
答案 4 :(得分:0)
您可能想尝试Bitnami RubyStack