Windows環境での Ruby on Rails (開発環境構築)



Windows環境での Ruby on Rails (Railsアプリ作成手順)アプリ編

当ページの目次
インストールする主要環境
MySQLのインストール
Ruby,RubyGemsのインストール
Railsのインストール
gettextのインストール(日本語化に使用)
gtk-win32-develのインストール(gettextに必要)
Apacheのインストール
FASTCGI、mod_rubyのインストール(ApacheでRubyが動作するようにする為)
httpd.confの変更
httpd.confのチェック
hostsの変更
Apache再起動


 インストールする主要環境は以下のもの(付随してインストールされるものもあります)

   ・MySQL-5.0.24a
   ・Ruby-185-21
   ・Rails-1.1.6
   ・Apache_2.0.59
   ・RubyForApache-1.3.1

   ◆MySQLのインストール
    MySQL の右下のほうにある Downloadsリンクから Current Release (Recommended)の Windows Essentials (x86) を取得する。
     2006/09/23現在 mysql-essential-5.0.24a-win32.msi が取得できる

mysql-essential-5.0.24a-win32.msi をダブルクリック
 MySQLへの登録画面では、MySQLへのユーザー登録したいときだけ入力する。
 それ以外は「キャンセル」クリック。
 文字コード設定画面では、デフォルトが latin になっているので utf8 に変更する
 Windows Pathの設定にチェックをする。
 rootのパスワードは必ず入力しましょう。

    ※インストールの最後でサービス起動に失敗する場合
以前のMySQLの残骸がレジストリに存在している場合がほとんどでしょう(ほんとレジストリはWindowsのガンだよ)
【対処】先ず、MySQLをコントロールパネルのアプリの追加削除からアンインストール
  ・regedit で 現在のレジストリをファイル書出し後、mysql を検索して全て削除
    一部削除に失敗するものがありますがそれは無視
  ・マシン再起動
    ここで正常起動しない場合はセーフモードで起動可能か試す、セーフモード起動できれば、その後の再起動が正常か試す。
    セーフモードがダメだったり、セーフモード後の再起動がダメな場合は、レジストリをファイルから戻せるなら戻す、それもダメならWindowsそのものの再インストールしかないかも。
  ・再度、MySQLインストール

   ◆Ruby,RubyGemsのインストール
    RubyForge からダウンロードできる One-Click Installer - Windows の最新版を取得
     2006/09/23現在 ruby185-21.exe が取得できる
ruby185-21.exe をダブルクリック

   ◆Railsのインストール
メニュー→Ruby-185-21→RubyGems→RubyGems Package Manager を起動
C:\ruby>gem install rails --include-dependencies

   ◆gettextのインストール(日本語化に使用)
    ※上記で起動した RubyGems Package Manager を使用
C:\ruby>gem install gettext
 最新のmswin32を選択(番号を入力)

   ◆gtk-win32-develのインストール(gettextに必要)
    GLADE for Windows からダウンロード
     2006/09/23現在 gtk-win32-devel-2.8.18-rc1.exe が取得できる
gtk-win32-devel-2.8.18-rc1.exe をダブルクリック

   ☆ここで、Ruby,Railsの動作確認(Apacheインストール前の動作確認)
    http://localhost:3000/ でRailsのWelcome画面がでるか確認します。
mkdir test
cd test
rails hello
cd hello
ruby script\server
ブラウザで localhost:3000 へアクセス

   ◆Apacheのインストール
    Apache HTTP SERVER PROJECT から 2.0系をダウンロード
     2006/09/23現在 apache_2.0.59-win32-x86-no_ssl.msi が取得できる
apache_2.0.59-win32-x86-no_ssl.msi をダブルクリック
 Network Domain、Server Name は、決まっているものがあればそれを、なければとりあえず localhost を設定
 Administrator Email Address は何か入れないとサービスの登録に失敗する

    ※Apacheのインストールで以下の表示がでる場合
「The Aug 01 09:08:42 2006」「error」(OS 2)指定されたファイルが見つかりません。
No installed service named "Apache2".
Note the errors or messages above, and press the key to exit

○原因
 (1)IISのようなソフトで既にポート80が使用されている
  netstat -an でポート80が使用されているかチェックできる
C:\Program Files>netstat -an
Active Connections
 Proto Local Address Foreign Address State
 TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
   対象のソフトがあれば、アンインストールかApacheの使用するポートを変更する
   (ポート変更は、httpd.confを修正)
 (2)httpd.confにエラーがある
   インストール時 Administrator Email Address に何も入力しない場合もこの状態です。
   httpd.conf の ServerAdmin に管理者メールアドレスを指定する
  httpd.conf のチェックは apache.exe があるフォルダーへ移動し
   apache -t でチェック

○原因の解決後、Apacheを起動させる
 (1)Apacheのサービス登録
  apache -k install -n "Apache2"
 (2)Apacheの起動
  apache -k start

○確認
 ブラウザで httpd://localhost/ にアクセスして Apacheの画面確認(ポート変更していない場合)
 例えば、8000にポート変更した場合は、
 ブラウザで httpd://localhost:8000/ にアクセス

   ◆FASTCGI、mod_rubyのインストール(ApacheでRubyが動作するようにする為)
    RubyForge からダウンロード
     2006/09/23現在 RubyForApache-1.3.1.exe が取得できる
RubyForApache-1.3.1.exe をダブルクリック
 rubyのインストール先を Browse から c:\ruby にしても RubyForApache が追加されるのでc:\ruby に戻す
 「Error opening file for writing: C:\WINDOWS\system32\msvcp71.dll」がでるが、無視をクリックして進める。
  既に、C:\WINDOWS\system32\msvcp71.dllが存在していればOK

   ☆以上で、Ruby on Rails の開発に必要なインストールは終了です
    さて、これからは Apache の設定です。

   ◆httpd.confの変更

#LoadModule rewrite_module modules/mod_rewrite.so の行先頭の#を削除

 以下を追加
--------------------------- 追加開始 -------------------------------------

LoadModule ruby_module modules/mod_ruby.so

# # If ClearModuleList is used in your httpd.conf, you should use AddModule
# # to activate the ruby module.
# AddModule mod_ruby.c

# If the ruby module is installed, this will be enabled.
<IfModule mod_ruby.c>
# for Apache::RubyRun
RubyRequire apache/ruby-run

# exec files under /ruby as ruby scripts.
<Location /ruby>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
Options +ExecCGI
</Location>

# exec *.rbx as ruby scripts.
<Files *.rbx>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
</Files>

# # for Apache::ERubyRun
# RubyRequire apache/eruby-run
#
# # handle files under /eruby as eRuby files by eruby.
# <Location /eruby>
# SetHandler ruby-object
# RubyHandler Apache::ERubyRun.instance
# </Location>
#
# # handle *.rhtml as eruby files.
# <Files *.rhtml>
# SetHandler ruby-object
# RubyHandler Apache::ERubyRun.instance
# </Files>

# # for Apache::ERbRun
# RubyRequire apache/erb-run
#
# # handle files under /erb as eRuby files by ERb.
# <Location /erb>
# SetHandler ruby-object
# RubyHandler Apache::ERbRun.instance
# </Location>

# # for debug
# RubyRequire auto-reload
</IfModule>
--------------------------- 追加終了 -------------------------------------

仮想ホストの設定
---------------------------------------------------------------------------

#NameVirtualHost *:80 行の先頭#を削除する

localhostの登録(上記の行を有効化させたので必要)と動作させたいrubyアプリの登録

#localhost分
<VirtualHost *:80>
ServerName localhost
DocumentRoot "C:\PROGRA~1\APACHE~1\Apache2\htdocs"
ErrorLog "C:\PROGRA~1\APACHE~1\Apache2\logs\localhost-error_log"
CustomLog "C:\PROGRA~1\APACHE~1\Apache2\logs\localhost-access_log" common
</VirtualHost>

#rubyアプリ分(LunchBooksというアプリの場合)
<VirtualHost *:80>
ServerName lunchbooks
DocumentRoot "C:/railsapp/LunchBooks/public"
ErrorLog "C:/railsapp/LunchBooks/log/server.log"
<Directory "c:/railsapp/LunchBooks/public/">
Options ExecCGI FollowSymLinks
AllowOverride all
Order deny,allow
Deny from all
Allow from 127.0.0.1
AddHandler cgi-script .cgi
# AddHandler fastcgi-script .fcgi
</Directory>
</VirtualHost>

   ◆httpd.confのチェック
C:\Program Files\Apache Group\Apache2\bin>apache -t

   ◆hostsの変更
    ※本来は仮想ホストのDNS登録が必要ですが、ローカルテストのためにhostsファイルへ登録します。
C:\WINNT\system32\drivers\etc\hostsを変更
上記のように、仮想ホストとして lunchbooks を設定した場合なら
127.0.0.1 localhost の行を
127.0.0.1 localhost lunchbooks のように変更

   ◆Apache再起動
    ※ErrorLog等で指定したディレクトリが無ければ作成してからApacheを起動させる。
ブラウザで http://localhost/ にアクセスしApacheの画面確認

ブラウザで http://lunchbooks/ でrubyアプリの画面確認
 ここでは、rubyアプリでFASTCGI有効にしていないので、通常のCGI動作している(遅い)

 FASTCGIを有効にする場合は、Railsアプリのpublicディレクトリにある .htaccess と Apache の設定ファイル httpd.conf を変更する。
 上記のLunchBooksアプリであれば c:/railsapp/LunchBooks/public/.htaccess を変更
  .htaccess の変更
 RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
 RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] のように変更
  httpd.conf の変更
LoadModule fastcgi_module modules/mod_fastcgi.so を追加
以下の3行を追加
<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi
</IfModule>
 
上記の仮想ホスト設定部でコメントにしている部分を有効化させます
# AddHandler fastcgi-script .fcgi
AddHandler fastcgi-script .fcgi のように先頭#を削除する

Windows環境での Ruby on Rails (Railsアプリ作成手順)アプリ編



ソフト紹介(開発) ソフト紹介(アプリケーション) ソフト紹介(インターネット) Linux QAページ