Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

railsのdispath.cgiでNilになる件がよくわからない・・・

やったことがない言語は辛いですね><

redmineに憧れてお名前.comのVPSのcentOSにインストールしようとしました。こちらの素晴らしいガイドを参考にして。


確かにサクサクと進みpassenger経由でredmineが起動するところまではいったのですが、500番。error_logにこんなエラーが。

/home/redmine/vendor/rails/actionpack/lib/action_controller/cgi_process.rb:22:in `__send__': undefined method `env_table' for nil:NilClass (NoMethodError)

\tfrom /home/redmine/vendor/rails/actionpack/lib/action_controller/cgi_process.rb:22:in `dispatch_cgi'

\tfrom /home/redmine/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:101:in `dispatch_cgi'

\tfrom /home/redmine/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:27:in `dispatch'

\tfrom /home/redmine/public/dispatch.cgi:10

[Mon Mar 08 21:42:08 2010] [error] [client 114.186.103.91] Premature end of script headers: dispatch.cgi

問題のソース

    def self.dispatch_cgi(app, cgi, out = $stdout)
      env = cgi.__send__(:env_table)

このenv_tableがNil(Null?)になっているようでそんなメソッドねぇよって怒っているようだが、何しろなぜNilになるのかよくわからない・・・。railsを知らないからenv_tableが何をしたいオブジェクトなのか・・・。

環境は以下の通り。

$ RAILS_ENV=production /home/redmine/script/about

/home/redmine/script/../config/../vendor/rails/railties/lib/rails/gem_dependency.rb:119:Warning: Gem::Dependency#version_requirements is deprecated and will be removed on or after August 2010. Use #requirement

About your application's environment

Ruby version 1.8.7 (x86_64-linux)

RubyGems version 1.3.6

Rack version 1.0

Rails version 2.3.5

Active Record version 2.3.5

Active Resource version 2.3.5

Action Mailer version 2.3.5

Active Support version 2.3.5

Edge Rails revision unknown

Application root /home/redmine

Environment production

Database adapter mysql

Database schema version 20100221100219

何かチェックすべきところがあれば、ご意見いただけると嬉しいです。

これを機に

そろそろ僕もrubyやってみよう。

追記(2010/3/15)

どうもApache側の設定(virtualhost関連)がうまくいっていなかったようで、サブドメイン切ってそこのルートにredmineを入れたら動きました。