我正在編寫一個通常在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。
我正在編寫一個通常在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。
因爲這個部署會受到傷害,所以你一定要很痛苦。我不知道這是否是一種解決方案,但在我以前的工作中,我們在Windows平板電腦(其中超過200臺)上部署了Web應用程序,並決定使用虛擬盒並在虛擬機中部署應用程序。我們的PC平板電腦上的一箇舊應用程序,我們部署在沒有iis的Windows上,只需使用ruby和rubygems與mongrel作爲應用程序服務器,mysql作爲數據庫,但這並不令人愉快。
你可以在IIS下部署Rails,這只是非常困難,並且沒有很多文檔。你需要一個特殊的快速執行CGI: http://roriis.codeplex.com/
在Windows Apache下Rails是一個更容易一點,但Windows部署中的最大的缺點是,你可以」不要使用Capistrano來自動部署。寶石在Windows上工作。我所有的經驗都是32位,可能會有64位相關的故障,但我懷疑它。
安裝Ruby on Rails使用IIS 7的64位Windows 2008服務器,請使用Helicon Zoo
這有一個缺點:如果你已經安裝並微調了一個Ruby的副本,它不會建議使用它,但會安裝另一個,此外,它會將新的Ruby放入PATH中,這將破壞以前的安裝。還有一件事:Helicon Zoo可以安裝RoR,但無法卸載它 - 您必須手動執行此操作。 – Paul 2013-04-23 17:03:26
是的,特別是對於SQL-Server,您需要特定的舊版本的Ruby,否則它不會編譯... – 2016-12-06 14:26:31
微軟的Web平臺安裝程序使得它非常容易!詳細信息請參見http://www.helicontech.com/articles/ruby-on-rails-on-windows-in-production/。
對於與回報率的窗口工作,我這樣做:
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)
我的應用程序工作一年以上連續,而不是有任何問題,我很高興。
有通過HttpPlatformHandler運行回報率上IIS8的方式 - 由Scott Hanselman在他的崗位描述:Announcing: Running Ruby on Rails on IIS8 (or anything else, really) with the new HttpPlatformHandler
這實際上是一個有趣的想法:安裝Hyper-V服務器,並在其中運行一些Linux。我會牢記這一點。 (PS:我是一名SharePoint開發人員,所以我不只是喜歡痛苦,我正在積極尋求它...) – 2010-07-22 01:07:47
lemme知道如果你想要走這條路線,無論是我自己還是我的老上司都可能給你一些提示。我認爲我們使用虛擬盒子的編譯版本遇到了一些許可證問題,所以我們必須從源代碼編譯它,這不是一個簡單的過程(我認爲他們試圖保持這種方式)。 – 2010-07-22 01:11:31