IIS 7でのRuby on Railsの迅速な自動インストール

Ruby on Railsフレームワークの人気は絶えず高まっており、社会は広くなっています。以前にWindowsでRubyを使用することについてめったに語られなかった場合、今日では非常に現実的な習慣です。

RubyInstaller( http://rubyinstaller.org/ )やRailsInstaller( http://railsinstaller.org/ )などのプロジェクトは、Windowsでの作業環境の作成を大幅に簡素化します。 ネイティブMRI 1.8および1.9、JRuby、または.NETを実行しているIronRubyを使用できます。 ほとんどのgemパッケージはWindowsで動作し、DevKit( https://github.com/oneclick/rubyinstaller/wiki/Development-Kit )のおかげで、ソースから「ジャム」ジャムを直接コンパイルできます。

ただし、開発ツールの積極的な開発にもかかわらず、これまでWindowsおよび特にIIS Webサーバーは、Railsアプリケーションを展開するための「本番」ソリューションとして実際には使用されていませんでした。 しかし、Web Platform Installerに基づく新しいHelicon Zooツールの登場により、この状況は変わりました。

ヘリコン動物園


Helicon Zooは、Webフレームワークとアプリケーションのリポジトリであり、IIS WebサーバーにRails、Django(実質的にはすべてのラック、wsgiまたはFastCGIアプリケーション)およびMojoliciousを簡単にインストールして実行できます。

Helcon Zooは、Microsoft Web Platform Installer( http://www.microsoft.com/web/downloads/platform.aspx )を使用します。 これは、MicrosoftのWebアプリケーションおよびフレームワークのリポジトリおよびデプロイメント環境であり、すでに多くのASP.NETおよびPHPアプリケーションが含まれています。 機能を実装するには、ユーザーがリポジトリから便利かつ簡単にインストールできるように、製品で独自のフィードを作成する必要がありました。

ただし、単に製品をリポジトリに追加するだけでは不十分です。 Helicon Zooのコアは、IIS WebサーバーとRuby、Python、およびPerlフレームワーク間のブリッジの役割を本質的に果たすネイティブIISモジュールです。このモジュールは、Webサーバーと対話するための信頼できる高速メソッドとして既に確立されているFastCGIプロトコルを使用して動作します。 I / Oは、IOCPテクノロジーを使用して非同期に処理されます。 名前付きパイプまたはソケットがトランスポートとして使用されます。 近い将来、開発者は非同期FastCGIのサポートを完全に実装する予定です(残念ながら、現在存在するフレームワークはいずれも非同期FastCGIをサポートしていません)。

サポートされているのは、IIS 7、IIS 7.5、およびIIS Expressです。

Ruby on Railsをインストールする


Web Platform Installer( http://www.microsoft.com/web/downloads/platform.aspx )をダウンロードして実行します。 表示されるウィンドウで、「オプション」をクリックします。

clip_image002

オプションで、ヘリコン動物園にフィードするためのリンクを追加する必要があります: www.helicontech.com/zoo/feed

clip_image004

上部の[アプリケーション]を選択し、左側のメニューの[ツール]に移動すると、新しいアプリケーションが表示されます:[空のRuby on Railsプロジェクト]、[空のDjangoプロジェクト]、[空のPerlプロジェクト]、および[空のMojoliciousプロジェクト]:

clip_image006

これらは空の「Hello World」ブランクであり、今後の開発に必要な依存関係を確立します。

Blank Ruby on Railsプロジェクトの反対側にある[追加]ボタンをクリックし、[インストール]ボタンをクリックします。

インストーラーは、次の依存関係のインストールを提案します。

clip_image008

[同意する]ボタンをクリックすると、必要なパッケージがダウンロードおよびインストールされ、その後、新しいアプリケーション用にサイトを構成するように求められます。

新しいサイトを作成するか、既存のサイトを選択できます。

clip_image010

インストールと構成が完了すると、アプリケーションを実行する準備が整います。

clip_image012

ボンネットの下


「Blank Ruby on Rails Project」 webをインストールした後 選択したIISサイトの構成ファイルは次のとおりです。

<?xml version = "1.0" encoding = "UTF-8"?>

<構成>

<system.webServer>

<ハンドラー>

<add name = "rails.project.x86" scriptProcessor = "ruby.1.9.pipe" path = "*" verb = "*" modules = "HeliconZoo_x86" preCondition = "bitness32" resourceType = "Unspecified" requireAccess = "Script" />

<add name = "rails.project.x64" scriptProcessor = "ruby.1.9.pipe" path = "*" verb = "*" modules = "HeliconZoo_x64" preCondition = "bitness64" resourceType = "Unspecified" requireAccess = "Script" />

</ handlers>

</system.webServer>

</構成>

デフォルトでは、名前付きパイプはIISモジュールとRuby on Railsワーカー間のトランスポートとして使用されます。 ソケットを使用するには、「scriptProcessor」パラメーターを「ruby.1.9.tcp」に置き換えるだけです。

使用可能なすべてのスクリプトプロセッサは、 applicationHost.configファイルの<heliconZooServer>セクションで説明されています。

ウェブ経由 configは、Railsアプリケーションの動作にも影響を与える可能性があります。 そのため、たとえば、デフォルトではデバッグモードで起動します(RAILS_ENV = development)。 実動モードに切り替えるには、RACK_ENV変数を次のように設定できます。

<?xml version = "1.0" encoding = "UTF-8"?>

<構成>

<system.webServer>

<heliconZoo>

<アプリケーション名= "rails.project.x64" >

<environmentVariables>

<名前を追加 = "RACK_ENV"値= "生産" />

</ environmentVariables>

</ application>

</ heliconZoo>

web.configファイルの<heliconZoo>セクションは、主にワーカーを呼び出すときに環境変数を設定するために使用されます。 実際、<environmentVariables>セクションを使用して、必要なパラメーターをアプリケーションに渡すことができます。 ルーブルでは、グローバルハッシュ「ENV」を通じて利用できます。

次は?


Helicon Zooプロジェクトの作業は非常に活発で、 HeliconTech開発会社はコメントや提案を喜んでいます。 現在、MRI 1.8、JRuby、およびRails 2.3のサポートが含まれる更新バージョンが準備されています。

空白の空白コレクションは、他のルビーフレームワーク、特にSinatraおよびRedMineなどの既製のアプリケーションでまもなく拡張されます。

Source: https://habr.com/ru/post/J125150/


All Articles