redmineインストール・Windows Server + IIS編
要件
- Windows Server 2008 + IIS 7環境にredmineを構築
- redmineは0.8.4
- databaseはMySQL 5.1
- IISサーバーのホスト名は example.com とします。
- example.com/redmine/ でアクセス出来ること
- 同一ポート番号で他のサービスを動かすため
rubyのインストール
http://rubyforge.org/projects/rubyinstaller/からバイナリをダウンロードしてインストール。
インストール時にgemを有効にしておく。
>ruby -v ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32] >gem -v 1.3.1
http://www.garbagecollect.jp/ruby/mswin32/ja/だとx64版(1.9.1)もあり。未確認。こっちは別途gemのインストールが必要?
2009-05-29追記:確認しました。詳しくはこちら。
railsのインストール
0.8.4でもit's still running with Rails 2.1.2.
とのことなので、2.1.2をインストールする
- 管理者権限でコマンドプロンプトを起動
- gem install rails --version "2.1.2"
- オプションについてはLinuxでのインストール方法を参照
MySQLのインストール
MySQL :: Download MySQL Community ServerからWindows用バイナリをダウンロード
何故かx64版を入れたら "Cannot create Windows Service for MySQL.Error:0" が出て失敗する*1ので、中途半端に出来たサービスを削除して再インストール。
MySQLのCommand Line Clientを起動して、redmine用のユーザーを作成する。
create database redmine default character set utf8; grant all privileges on redmine.* to redmine identified by 'パスワード';
redmineのインストール
- tortoisesvn.tigris.orgからTortoiseSVNをインストール
- 適当なフォルダ(e.g. c:\redmine)に http://redmine.rubyforge.org/svn/tags/0.8.4/ をチェックアウト
- database.ymlの編集
- rake db:migrate RAILS_ENV="production"
- rake load_default_data RAILS_ENV="production"
- email.ymlの編集
ruby script/server -e production でサーバー起動 → http://localhost:3000/ で動作確認完了。
Mongrelのインストール
Windowsサービスにするので、mongrel_serviceをインストールする
>gem install mongrel_service
example.com/redmine/ でアクセスするため、Redmineをサービスに登録する - bnoteおよび、http://blog.fulltext-search.biz/articles/2007/07/21/rails-on-subdirectory-operationの記述を参考に下記のように設定
>mongrel_rails service::install -N "Redmine" -c c:\redmine -p 3000 -e production --prefix /redmine ** Copying native mongrel_service executable... Mongrel service 'Redmine' installed as 'Redmine'. >sc config Redmine start= auto depend= MySql [SC] ChangeServiceConfig SUCCESS >net start Redmine Redmine サービスを開始します. Redmine サービスは正常に開始されました。
services.mscを起動して、Redmineサービスを開始 → http://localhost:3000/redmine/ で動作確認完了。
mongrel_serviceが最新(2008/12/15現在)のwin32-service(0.6.1)では動作しない
という記述もありましたが、今のところ、win32-service 0.6.1 & mongrel_service 0.3.4で問題無さそうです。
2009-05-21追記:
gem install mongrel_service だけでインストールした場合は、win32-service 0.5.2がインストールされるようです。
Application Request Routing Module(ARR)のインストール
tomcatをapache経由で参照する場合と同様に、IIS経由でmongrelを使用する場合、mod_proxy_ajpに相当するものとして、Application Request Routing Moduleというものがあるようです。
ARRと言う名称ですが、以下のモジュール全てがインストールされるようです。
- Microsoft URL Rewrite Module for IIS 7.0.
- Microsoft Web Farm Management Version 1 for IIS 7.0.
- Microsoft Application Request Routing Version 1 for IIS 7.0.
- Microsoft External Cache Version 1 for IIS 7.0.
とりあえず、Install Application Request Routing | Microsoft Docsのとおりにインストールしてみたんですが、何故かARRだけがインストールに失敗orz
ログ見たら、"Error in function InstallWindowsHotfixQuietly"というのが出ていたので、それを元にこの辺を見ていたのですが、どうやら、リモートデスクトップで自分のユーザー(Administratorsグループ)から実行していたのがまずかった模様。
以下、インストール手順
- administratorユーザーでログイン
- コマンドプロンプトを管理者権限で実行
- net stop was /y
- net stop wmsvc /y
- IIS7の役割サービスで、 管理ツール - 管理サービス をインストールした場合
- EXEファイルをダウンロード
- EXEファイルを管理者権限で実行
- %TEMP%\arr_setup.log を開いて、全てのモジュールがSuccessになっていることを確認
- %TEMP%に無い時は、1個上にあったりします。
- net start was
- net start wmsvc
- IISマネージャを起動
- IISの機能に"Application Request Routing"と"URL Rewrite"が追加されていることを確認。
- アプリケーション プールで、DefaultAppPoolの詳細設定を開く
- プロセス モデル - アイドル状態のタイムアウト(分)を0(無効)に変更→OK
- 必要?
IIS Application Request Routingの設定
- [Enable proxy]をON
- [Proxy Type] - [Use URL Rewrite to inspect incoming requests]をON
- [Proxy Type] - [Reverse proxy:]に localhost:3000 を記入
- 適用
URL Rewriteで確認すると、ARR_server_proxyルールが出来てます。
- Pattern
- *
- Rewrite URL
- http://localhost:3000/{R:0}
このままだと全てのアクセスがリライトされてしまうため、下記のようなコンディションを追加
Input | Type | Pattern |
{REQUEST_URI} |
Matches the pattern | /redmine* |
http://example.com/redmine/ で、redmineにアクセスできるのを確認。
補足:Match URLを下記のように変更する対応もあります。この場合はCondition不要。
項目名 | before | after |
Using | Wildcards | Regular Expressions |
Pattern | * |
(redmine.*) |
どっちの方がパフォーマンスが良いかは不明。
ConditionはMatch All / Match Anyなので、場合によってはこっちを使った方が良いのかも。
例えば、ディレクトリを切らずに http://redmine.example.com/ でサービスを提供する場合は、下記の様に設定(正規表現使用時、サーバーのIPを192.168.0.1とした場合)。
セクション | 項目名 | 設定値 |
Match URL | Pattern | (.*) |
Condition | {HTTP_HOST} | redmine.example.com |
Action | Action Type | Rewrite |
Action | Rewrite URL | http://192.168.0.1:3000/{R:0} |
参考文献
- http://blog.digibee.jp/2007/04/redminewindows_1.html
- プロジェクト管理ツールredMineをWindowsで使ってみる - Rubyの魔神 - はてな?Rubyグループ
- http://www.andy.name.my/2009/03/cannot-create-windows-service-for-mysqlerror0/
- MySQL :: MySQL 5.6 リファレンスマニュアル :: 2.3.6 Microsoft Windows MySQL Server インストールのトラブルシューティング
- 間違って作ってしまったサービスの削除方法
- プロジェクト管理ツールredMineをWindowsで使ってみる - Rubyの魔神 - はてな?Rubyグループ
- 入門Redmine Linux/Windows対応
- http://blog.look-ss.jp/article.php/20090426190953964
- MongrelをWindowsのサービスとして動かす:Windowsのお手軽Rails環境 - OneRingToFind
- Redmineをサービスに登録する - bnote
- http://mongrel.rubyforge.org/wiki/Win32
- mongrel_serviceの使い方
- MongrelとIIS7を統合する(Application Request Routing ModuleでIIS7をリバースプロキシ化する) - Kazzzの日記
- ARRの使用方法
- Install Application Request Routing | Microsoft Docs
- ARRのインストール/アンインストール方法
- High Availability for ARR itself : The Official Microsoft IIS Forums
- ARRのインストールに失敗したケース
- http://blog.fulltext-search.biz/articles/2007/07/21/rails-on-subdirectory-operation
*1:再度手順通り試した所再現せず。Administratorユーザーで作業していなかったため?