2010-07-22 123 views
20

我正在編寫一個通常在Heroku或Linux Box上運行的Ruby on Rails應用程序,但我需要將它部署到Windows Server上。IIS上的Ruby on Rails?

該服務器是安裝了IIS 7.0的64位Win2008服務器,所以通常我寧願使用IIS而不是在其旁邊設置Apache。

我只是不知道Ruby/Rails是否適用於IIS?寶石是否有效?是64位的問題?

我在考慮使用Ruby 1.9.1和Rails 2.3。

回答

12

因爲這個部署會受到傷害,所以你一定要很痛苦。我不知道這是否是一種解決方案,但在我以前的工作中,我們在Windows平板電腦(其中超過200臺)上部署了Web應用程序,並決定使用虛擬盒並在虛擬機中部署應用程序。我們的PC平板電腦上的一箇舊應用程序,我們部署在沒有iis的Windows上,只需使用ruby和rubygems與mongrel作爲應用程序服務器,mysql作爲數據庫,但這並不令人愉快。

+10

這實際上是一個有趣的想法:安裝Hyper-V服務器,並在其中運行一些Linux。我會牢記這一點。 (PS:我是一名SharePoint開發人員,所以我不只是喜歡痛苦,我正在積極尋求它...) – 2010-07-22 01:07:47

+0

lemme知道如果你想要走這條路線,無論是我自己還是我的老上司都可能給你一些提示。我認爲我們使用虛擬盒子的編譯版本遇到了一些許可證問題,所以我們必須從源代碼編譯它,這不是一個簡單的過程(我認爲他們試圖保持這種方式)。 – 2010-07-22 01:11:31

2

你可以在IIS下部署Rails,這只是非常困難,並且沒有很多文檔。你需要一個特殊的快速執行CGI: http://roriis.codeplex.com/

而且信息在這裏: http://mvolo.com/blogs/serverside/archive/2007/02/18/10-steps-to-get-Ruby-on-Rails-running-on-Windows-with-IIS-FastCGI.aspx

在Windows Apache下Rails是一個更容易一點,但Windows部署中的最大的缺點是,你可以」不要使用Capistrano來自動部署。寶石在Windows上工作。我所有的經驗都是32位,可能會有64位相關的故障,但我懷疑它。

17

安裝Ruby on Rails使用IIS 7的64位Windows 2008服務器,請使用Helicon Zoo

+3

這有一個缺點:如果你已經安裝並微調了一個Ruby的副本,它不會建議使用它,但會安裝另一個,此外,它會將新的Ruby放入PATH中,這將破壞以前的安裝。還有一件事:Helicon Zoo可以安裝RoR,但無法卸載它 - 您必須手動執行此操作。 – Paul 2013-04-23 17:03:26

+0

是的,特別是對於SQL-Server,您需要特定的舊版本的Ruby,否則它不會編譯... – 2016-12-06 14:26:31

0

對於與回報率的窗口工作,我這樣做:

1. Install Ruby and RoR 
2. Install NginX (balancing for each thin server launched) 
3. Install Thin Server 
4. Create a service (on Ruby code) that run each thin server process with each affinity process (cpu0/cpu1...) for example if have a DualCore CPU it will launch 2 Thin Server (different port between those) and set affinity for each one (using PID). 
5. Set a windows user with permission to do run that service (like a IIS pool and isolated process concept) 

我的應用程序工作一年以上連續,而不是有任何問題,我很高興。