我应该放弃在Windows下部署Rails吗?

时间:2009-12-11 19:09:00

标签: ruby-on-rails windows mod-rails

我运行由另一个团队开发的rails应用程序的实例。回到我开始时,部署Rails应用程序的常用方法是在Apache后面使用Mongrel,这是该团队用于自己实例的配置。由于我是Windows用户,并且由于Apache和Mongrel都可以轻松地设置为Windows服务,因此我使用(虚拟)Windows框并在那里设置所有内容。

我猜是因为在Rails的土地上发生了变化。杂种停滞不前(至少这是我对普遍看法的印象)。开发我的应用程序的团队已经转而使用mod_rails了。我并不关心这一切,因为我的Mongrel设置继续工作,直到我最后一次与他们的代码同步。显然,有一个名称冲突,他们创建了一个“服务”模型,它与mongrel_service中的模块名称冲突(参见http://aspn.activestate.com/ASPN/Mail/Message/ruby-rails/3497181)。当我让他们重命名模型时,他们说他们对支持Mongrel不感兴趣。

Mongrel仍然是Rails应用程序的有效选项吗?如果没有,是否有在Windows下部署的有效替代方案?在Windows下运行mod_rails和Thin都没有......或者我应该咬紧牙关,放弃Windows部署,并将我的VM重建为Linux机箱?

澄清:运行此功能的VM不在我的开发桌面上。它是我们IT部门托管的虚拟机,用于生产。我有管理员。如果必须的话,我可以让IT设置一个Linux VM。

8 个答案:

答案 0 :(得分:2)

放弃Windows。

两年前,当我也认为自己是“Windows家伙”时,我开始在备用笔记本电脑上使用Ubuntu。大约两天后,我意识到我在Windows上遇到了多少不必要的麻烦,我决定转换。

花了一些时间让所有东西都舒适地安装好,但我估计这个开关在过去两年里为我节省了6个月的生产力。对我的生活质量的积极影响非常显着:安装语言和Web开发库所花费的时间只是Windows上的一小部分,而且我可以使用几乎任何东西,这意味着我学习更多,并拥有更有趣

我知道这是一个很大的改变,但是如果你有一台备用电脑我会高度建议给它一个机会。总有一些方法可以在Windows上运行,但你真的应该质疑它是否值得付出努力。

答案 1 :(得分:1)

Chiming in。当我不得不在Windows上部署时,我将VirtualBox与Ubuntu一起使用。适用于大多数典型网站。不过,如果它是一个更大的网站,你很快就会遇到扩展问题。

答案 2 :(得分:1)

带有jruby的Glassfish在windows上很棒,它可以处理多个请求。

答案 3 :(得分:1)

这并没有直接回答你的问题,但我个人会咬紧牙关,转而使用Linux,安装Apache和Passenger,然后再这样做。安装Ubuntu Server并安装上述内容是一种非常轻松的体验,您最多只能在一两个小时内启动并运行。

过去,这是我使用过的方法,如果您对Linux和/或Apache没有太多/任何经验,那么唯一的障碍就是学习曲线。可能值得查看"Linux for Softies"上的TekPub系列,其中包括设置此堆栈。

答案 4 :(得分:0)

Mongrel仍然是一个有效的选择,但乘客(mod_rails)更受欢迎。

您可以尝试使用Webrick作为rails的标准。

script/server webrick

强制使用Webrick

但如果我是你,我会在我的电脑上安装一个虚拟盒子,带有一个共享文件夹(给定的比你想留在windows上)并使用虚拟盒来运行我的应用程序使用mod_rails

答案 5 :(得分:0)

不要放弃。 Mongrel在Windows上仍然很好,Windows仍然是Rails的良好开发环境。通过查看您提到的链接问题,该人通过卸载mongrel_service gem解决了他的问题。如果您不需要将mongrel作为服务运行,并且我猜您不会在开发框中,那么您应该没问题。我不知道你正在运行什么版本的mongrel_service,但是如果可以升级则值得一看。

答案 6 :(得分:0)

如果您必须在Windows上执行某些操作,那么我会使用JRuby和Java应用服务器(如Glassfish或Tomcat)。我不会尝试使用Windows上的任何本机Ruby - 根据我的经验,这只是一个令人头痛的问题。此外,Matz承认,在Windows上,Ruby运行速度明显变慢(我认为他说的速度比在Unix / Linux上慢了近20倍)。现在这可能不是JRuby的情况,这也是我推荐它用于Windows的原因。

只需2美分。

答案 7 :(得分:0)

我知道它已经有一段时间了,但如果你使用--pre参数,那么现在可以在Windows上编译。