Ruby on Rails を Mac OSX Tigerで

ちょっと興味を惹かれたRuby on Railsを、Mac OSX Tigerにインストールしてみる。まずはxCode Toolsが必要になる場合があるそうなので、OSXのディスクからインストール。

もしかしたら必要なかったDarwinPortsからRubyインストール

インストール方法でRailsのページを探したら、以下の記事を発見。

Howto Install On OSXTiger Using Darwin Ports in Rails Wiki

まずは、この記事の通りに始めたのですが、Max OSX Tiger向けにRuby 1.8.2を修正したインストール・パッケージを公開しているページがあったので、そちらの方に途中から変更しました。ただし一応、記録のために途中までやったことを書いておきます。

export PATH=${PATH}:/usr/local/bin:/opt/local/bin

DarwinportsからRubyをインストール

 $ sudo port selfupdate
 $ sudo port install readline
 $ sudo port install ruby

インストール・パッケージに切り替え

上記の手順で、Rubyまでインストールしたところで、別の記事を発見。

Rolling with Ruby on Rails on Mac OS X Tiger (for beginners)

A fix for Ruby 1.8.2 that comes with Mac OS X 10.4 - by default, it tries to cross-compile an native rubygems extensions for i686 as well as ppc. This won’t work on a standard Tiger install, so we remove those references.

とか書いてあるので、こちらを使ってみることに。上記のページからインストール・パッケージをダウンロードして、インストール。後は、ページに書いてある通り、ターミナルからコマンド入力。

 $ sudo gem update
 $ cd ~
 $ mkdir Rails
 $ cd Rails
 $ rails Test

どーっと、createメッセージが出て、作成完了。

 $ cd ~/Rails/Test
 $ ./script/server

WEBrickというデバック用のサーバが立ち上がったので、ブラウザで http://127.0.0.1:3000/ にアクセスしてみる。「Congratulations, you've put Ruby on Rails!」と表示されて、ひとまずインストールはOKのよう。

Rails と Apacheの設定

Rolling with Ruby on Railsに書いてある事にしたがって、RailsとApacheの設定を続けます。まずはWEBrickを終了させるために、ターミナルで「ctr + c」。WEBrickが終了したら、パーミッションを変更。

 $ cd ~/Rails/
 $ sudo chgrp -R www Test
 $ cd ~/Rails/Test
 $ chmod 0775 db
 $ chmod 0777 log
 $ chmod 0775 public
 $ chmod 0666 log/*.log

次はapacheの設定。 /private/etc/httpd/users/USERNAME.conf (USERNAMEはMacのユーザー名)を編集。以下を追加。

<IfModule mod_fastcgi.c>
    FastCgiIpcDir /tmp/fcgi_ipc/
    AddHandler fastcgi-script .fcgi
</IfModule>

Alias /test/ "/Users/USERNAME/Rails/Test/public/"
Alias /test "/Users/USERNAME/Rails/Test/public/"

<Directory /Users/USERNAME/Rails/Test/public/>
  Options ExecCGI FollowSymLinks
  AllowOverride all
  Order allow,deny
  Allow from all
</Directory>

最後にRailsの設定。Railsで作成したディレクトリ、 Rails/Test/public にある .htaccess を編集。

RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
と書いてあるところを、Fast CGIの以下に変更
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
RewriteEngine On:の下に以下を追加。
RewriteBase /test/
保存したら。apacheを起動。
 $ sudo apachectl graceful

http://127.0.0.1/test/ で正しくアクセスできるようなので。ひとまずインストールOKかな。

2006/06/25 追記

Rails 1.1 にして新しくプロジェクトを作成。上記の設定をしても、WEBrickだとOKなのにApacheだと「Application Error」が出てしまう。以下のコマンドで、プロジェクトのディレクトリ配下を全部755にしたら動くようになった。ちょっと謎。ひとまず開発環境では下記でOKそうですが、本番環境でどうなるかは要調査。

> chmod -Rv 755 umizoi