さくらインターネットにデプロイしようとしてにっちんもさっちんも行かなくなっている今日この頃です。

で、非常にいい感じの情報をゲットしたのでシェアしたい。

デプロイにおいて、500や403エラーもやたらと出るが、多分最後に出てくるのが
Rails application failed to start properly
ではないだろうか。

Application error
Rails application failed to start properly"

こんなの。
ログにも何もでないし、問題解決のしようがない。
そこで銀の銃弾とはならないものの、どこが悪いのかおぼろげに
見える素敵手法がある。
プロジェクトのpublic/フォルダに移動し、

ruby dispactch.cgi

を行うと、rails内でのエラーを吐いてくれるので、
お試しあれ。

ウチの場合はこんなん出た。原因究明はまだ。

%ruby dispatch.cgi
/home/xxxx/rails/xxxx/vendor/rails/actionpack/lib/action_controller/cgi_process.rb:22:in `__send__': undefined method `env_table' for nil:NilClass (NoMethodError)
    from /home/xxxx/rails/xxxx/vendor/rails/actionpack/lib/action_controller/cgi_process.rb:22:in `dispatch_cgi'
    from /home/xxx/rails/xxxx/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:101:in `dispatch_cgi'

    from /home/xxxxx/rails/xxxx/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:27:in `dispatch'
    from dispatch.cgi:12

ただ、railsのバージョンによっては自動に生成されないので注意が必要。
そういう時はやや見苦しいが、ダミープロジェクトを作成し、

rails -D dummy

と入れることでpublic内にdispatch.cgiが作成されるので、それをコピペすると良い。

dispatch.cgiの一行目の

#!/usr/bin/ruby

を自分の環境に合わせることもお忘れなく。

参照リンク
http://www.hostingrails.com/faq#rails_failed_to_start 正直激お役立ちサイトなので暇を見ては訳す。