PHP5のフレームワークsymfonyもやっておかないとなあと思うものの,まだ簡単にさわってみただけの段階で今度はRuby on Railsが流行りつつある… というご時世に翻弄されて,一度はこちらもやっておかないとなあと触発されて,普段テスト環境に使っている仮想サーバにRuby/Ruby on Railsが使える環境を作ってみたのでメモ。

サーバOSはFedora 8。以下,とにかく手間をかけずにインストールしたいなあと思いながらやってみた手順。

Ruby,mod_rails (Passenger)から

まずはyumで手っ取り早く土台を入れてしまう。apr-develは,後の方で「ないよ」と言われたので付け加えてある。

# yum install ruby ruby-devel rubygems apr-devel
# gem install –remote rails –include-dependencies
# export APXS2=/usr/local/apache2/bin/apxs
# gem install –remote passenger

ここで,fastthreadの選択があるので「2. fastthread 1.0.1 (ruby)」を選んで次へ。

Install required dependency fastthread? [Yn] y
Select which gem to install for your platform (i386-linux)
1. fastthread 1.0.1 (mswin32)
2. fastthread 1.0.1 (ruby)
3. Skip this gem
4. Cancel installation
> 2 [Enter]

ここまできたら,Apache2モジュールをインストールする準備がととのったので,次のコマンドでインストールする。長い名前で,ほんとに全部ハイフンが入っているのか心配になるような感じだが,この名前で大丈夫。しかもパスが通っているので安心。

# passenger-install-apache2-module

うまくいくと,最後にApacheに追加する設定項目などの説明書きがでてきて完了。

mod_ruby

Railsアプリだけじゃなくて,ふつうの,helloworld.rbみたいな単一ファイルのrubyスクリプトを作って遊びたいのでこれも入れてみた。インストールはかなり簡単。http://wiki.modruby.net/en/?InstallGuideのインストールガイドに沿って行くだけ。

httpd.confの設定

Ruby/Ruby on Railsを動かすのに必要なhttpd.confの設定。

# Ruby
LoadModule ruby_module modules/mod_ruby.so

RubyRequire apache/ruby-run

SetHandler ruby-object
RubyHandler Apache::RubyRun.instance



Options ExecCGI

# Ruby on Rails
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-1.0.4/ext/apache2/mod_passenger.so
RailsSpawnServer /usr/lib/ruby/gems/1.8/gems/passenger-1.0.4/bin/passenger-spawn-server
RailsRuby /usr/bin/ruby

あと,Railsアプリを走らせるときにはpublicディレクトリのみ公開にするので,以下のような感じでAliasを設定しておく。

AliasMatch /yourapp/(.*) /path/to/rails/yourapp/public/$1

これで,めでたくRubyが使えるようになりました,と。Ruby on Railsの方は,まだ一応ページが表示されるっていうのを確認しただけなのでまだトラブルが隠れているかもしれないけど。

“Hello, Ruby!”.display;