事実
・本番環境のproduction.logを確認し、以下のエラーメッセージを発見した。
ActionView::TemplateError (undefined method `length' for #
・エラーメッセージで検索するとrubyのバージョンが1.8.7になって言語使用が変わったことが原因らしいとわかる
http://d.hatena.ne.jp/kusakari/20090113/1231814715
・rubyのバージョンを固定する方法を探し、複数のバージョンのrubyを共存させる方法が見付かる。
prefixやsuffixを付ける方法やrvmというパッケージを使う方法があるらしい。
http://doc.loveruby.net/wiki/HowToInstallRubys.html
http://d.hatena.ne.jp/f96q/20100217/1266393976
・rubyのバージョン1.8.5をダウンロードし、サーバでコンパイルする。
・環境変数にruby1.8.5へのパスを追加するも、だめ。
・てかPassengerにどのRubyインタプリタを使わせるか指定するオプションがあるんじゃね?と気付く。
・PassengerRubyというオプションをApacheのconfigに書けばいいらしい。DreamHostはconfigファイルをいじらせてくれないので.htaccessに書く。
・今まで出ていたのはRailsのエラーだったが、上記変更によってApacheがエラーを吐くようになる
(;´Д`)
・設定は合っているはずなのにどうしてもだめ。やむを得ずRuby1.8.7に合わせてソースコードを変更する方針に転換。
・ローカルPCにRuby1.8.7,Rails,NetBeansをインストール
・gemが使えなくてはまる。Rubyのインストール先がProgram Files以下だと使えなくなるらしい。
・C:\Rubyに再度Rubyをインストール
・Apacheを起動しようとするが起動せず。
netstat -oanコマンドで使用されているポートを調べると80番がSkypeに使われていることが判明したのでSkypeを終了させ、Apacheのサービスを起動させる。
でも忘れてたけどWebRickサーバを使って開発するからApacheはいらないんだよね。。
続く