如何在Windows中为Ruby on Rails配置Apache 2.2?
我正在尝试开始编写一些Ruby on Rails应用程序,并且已经成功使用Mongrel,但是,我想将应用程序部署到Windows上的Apache 2.2实例吗?我发现的所有教程似乎都是过时的,并且是针对较旧版本的Apache / Rails的。
有谁知道如何为Ruby on Rails应用配置Apache 2.2的最新好教程?
解决方案
编辑:至少直到有赢取Phusion的乘客,Apache + Mongrel才是成功之路。我们可以在没有Mongrel的情况下使用Apache + FastCGI,但是在实际负载下,我们将获得(更多)僵尸进程和(更多)内存泄漏。
我们还可以按照以下详述的方式查看代理到Thin。但是,尽管Thin Pro的运行速度明显更快,但我在使用Thin时还是有些不稳定的地方。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 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上运行杂种,Rails的根目录位于C:\ web \ myapp
,并且我们将在www.myapp.com上访问该应用程序。
要在生产模式下运行Rails应用程序:
mongrel_rails start -p 3000 -e production
走开(实际上杂种默认为端口3000,因此如果需要,我们可以跳过-p 3000
)。
主要区别在于我们无法在Windows上守护杂种(即使其在后台运行)。相反,我们可以使用mongrel_service
gem将其作为服务安装。
而且,运行集群更加复杂,我们将无法使用Capistrano。让我知道我们是否需要更多信息。
我是RoR的新手,并且一直在Windows Server 2008上尝试相同的操作,这里有一些有关使杂种作为服务使用的其他说明:
如果在安装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"。
希望能对某人有所帮助。
目前,Mongrel无法在Ruby 1.9上正常工作,并且在执行命令mongrel_rails时将引发"找不到msvcrt-ruby18.dll"错误。
在这种情况下,Thin似乎是目前唯一的选择。