Ruby, RubyGemsの制限
- rack-legacy 0.3.0 は本当は RubyGems 1.8 以降対応
- bin/rack_legacy が Gem::Specification.find_by_name を使っているから
- rack_legacy コマンドを使えば内部の rack_legacy.ru を使ってくれるので、require とか use とか run とか自分で書く必要なし。アプリのある場所でいきなり叩けば ok
- Ruby 1.8 でも 1.9 でも動く
PHPの制限
`php-cgi` を呼んでいるので
- PHP 5 以降1
- Mac 標準の PHP では動かない(入ってないから)
※ php-cli と php-cgi とバカ正直にバイナリを分けなきゃいけないもんなんだろうか。php-cgi という名前で呼び出されたら CGI 用のモードで動く、とかできそうなもんだけど。
使ってみようとしたんだけど
実は Mac では Apache + mod_php の環境はすぐに動かせるんだけど、
- システム全体で Web サーバが動いてる必要は全然ない
- PHP のコードを書くときだけ軽く動かせればよい
- いちいち VirtualHost の設定とかしたくない
- 本来そんなもの必要ないはずなんだけど、しておかないと PATH が変わってしまう
- システム全体にライブラリを突っ込んでいって汚すのもイヤ
と思ってる。
そこで rack-legacy を使えないかなと思ったんだけど、上の php-cgi で躓いてしまった。他のバージョンは知らないけど少なくとも OSX 10.5 標準の PHP には CGI バイナリは入っていない。それだけをインストールする方法もない。MacPorts などで PHP を丸ごと一式入れ直す方法もなくはないけど、それだったら MAMP 入れたり VM で Linux 入れてしまっても手間的には大して変わらない気がするというか、Linux 入れてしまう方が構成的に最も素直だと思う。どうせ本番環境は Linux なんだから、それに近い方がトラブルは少ない。
実際、入れてあった CentOS 上には php-cgi はあったので、こっちでやった方が楽そうだ。問題は VM を動かすのは「少しも手軽じゃない」ってことだけ。
ということで見送りになってしまった。うーん残念。本格的に受け入れテスト用の環境として使うなら rack-legacy + RSpec よりは Cucumber になるんじゃないかなと思うし、面白いんだけどちょっと使いどころが難しい。
本物のレガシーをなめちゃいけない ↩