Passenger を導入しようと思ったのだけど
サラのCentOS5.3 に Ruby と Ruby gems をインストールしてある状態で、 Passenger を導入しようと思った。
で、Sinatraで鼻歌まじりのWeb開発を参考に、
gem install passenger
passenger-install-apache2-module
とやって*1、インストールできた。
あとは上記の資料を参考にディレクトリ等を作成し、passenger 経由でのアプリ起動を試してみた。
すると、フツーにpassenger のエラー画面になるので、ちまちまエラーを潰してゆく。
で、この画面の下記のような部分は足りないライブラリになるので、gem install でインストールしていく。
Error message:
RubyGem version error: ruby-openid(2.1.6 not ~> 2.0.0)
ちなみに、fcgi のインストールは下記を参照した。
でも、まだ動かない
上記の画面キャプチャーにのっている、openid のライブラリインストールでハマった。
Error message:
RubyGem version error: ruby-openid(2.1.6 not ~> 2.0.0)
ruby-openid をフツーにインストールすると、最新の 2.1.6 がインストールされるのだけど、何故かバージョンエラーで怒られる。
gem の説明によると、 ~> という書き方は、指定バージョン以上で、最新のバージョンというものを示すらしいが、gem でインストールできる最新版をインストールしているにもかかわらずエラーになる。どういうこった。
さっぱり原因が分からない上にエラーメッセージでググってもほとんど情報が出てこないので、仕方なく検索で引っかかった英語のサイトGoogle Groupsを見てみる。
どうやら同じ症状のようで、リプライもある。
それによると
Please upgrade rubygems and try again, 1.3.x has been out for many moons now.
というわけだ。つまり、rubygems のバージョンを 1.3 系にあげろって事だと思われる。
じゃあ、自分の rubygems はいくつなん? 確認してみる。
% gem --version
1.2.0
なるほど、これが原因か。
で、rubygems 1.3 系からは gem 自身のアップデート方法が変わったようなので、新しい方法でアップデートしてみる。
これで 1.3 系にアップグレードできたみたいだ。
じゃあもう一回確認してみよう!
胸の高鳴りを押さえながら、もう一度 passenger を動かしている URL を覗いてみると・・・
小さくて分からないかもしれないけど、 hello! と書いてある。
これで Apache 経由で sinatra アプリが動かせる!!