コレグレーデギネード

WindowsとかUbuntuとかRubyとかRailsとか

Gemfileでthinを指定しているのにWEBrickで立ち上がる現象。

Gemfileに以下の内容を追記しておくと「thin」で立ち上がるはずなのに、なぜか「WEBrick」でサーバーが立ち上がる。

group :development do
  gem 'thin'
end
$ rails s
=> Booting WEBrick
=> Rails 3.2.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-05-13 22:12:21] INFO  WEBrick 1.3.1
[2012-05-13 22:12:21] INFO  ruby 1.9.3 (2012-05-04) [i686-linux]
[2012-05-13 22:12:21] INFO  WEBrick::HTTPServer#start: pid=2767 port=3000
[2012-05-13 22:12:45] ERROR NoMethodError: undefined method `page_cache_extension' for ActionController::Base:Class
	/home/username/.rvm/gems/ruby-1.9.3-head@rails3/gems/actionpack-3.2.3/lib/action_dispatch/middleware/static.rb:31:in `ext'
	/home/username/.rvm/gems/ruby-1.9.3-head@rails3/gems/actionpack-3.2.3/lib/action_dispatch/middleware/static.rb:15:in `match?'
	/home/username/.rvm/gems/ruby-1.9.3-head@rails3/gems/actionpack-3.2.3/lib/action_dispatch/middleware/static.rb:56:in `call'
	/home/username/.rvm/gems/ruby-1.9.3-head@rails3/gems/railties-3.2.3/lib/rails/engine.rb:479:in `call'
	/home/username/.rvm/gems/ruby-1.9.3-head@rails3/gems/railties-3.2.3/lib/rails/application.rb:220:in `call'
	/home/username/.rvm/gems/ruby-1.9.3-head@rails3/gems/rack-1.4.1/lib/rack/content_length.rb:14:in `call'
	/home/username/.rvm/gems/ruby-1.9.3-head@rails3/gems/railties-3.2.3/lib/rails/rack/log_tailer.rb:14:in `call'
	/home/username/.rvm/gems/ruby-1.9.3-head@rails3/gems/rack-1.4.1/lib/rack/handler/webrick.rb:59:in `service'
	/home/username/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
	/home/username/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
	/home/username/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
[2012-05-13 22:12:47] WARN  Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true

試しにthin startしてみる。

thin start
>> Using rack adapter
>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:3000, CTRL+C to stop

問題なく立ち上がる。
detabase.ymlや他のファイルを一通り見直したが問題は無い。

新しくプロジェクトを作って同じようにGemfileでthinを使うように指定してみたら、問題なくthinで立ち上がった。
gemsetも同じものを使用している。

念のため、不可視ファイルまで確認する。
sampleappの中身(thinが立ち上がらないプロジェクト)

$ ls -a
.  ..  .bundle  .gitignore  .rvmrc  Gemfile  Gemfile.lock  README.rdoc  Rakefile  app  config  config.ru  db  doc  lib  log  public  script  test  tmp  vendor

samplenewappの中身(新しく作成したプロジェクト)

.  ..  .gitignore  .rvmrc  Gemfile  Gemfile.lock  README.rdoc  Rakefile  app  config  config.ru  db  doc  lib  log  public  script  test  tmp  vendor

立ち上がらないプロジェクト内には「.bundle」という不可視ディレクトリが存在する以外に違いはない。

迷わず削除する。

$ rm -r .bundle
$ rails s
=> Booting Thin
=> Rails 3.2.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:3000, CTRL+C to stop

立ち上がった。何だか判らんが「.bundle」が邪魔だったらしい。