将一个非常基本的Rails 3.2.3试验站部署到一个“生产”服务器上(幸好并不真正投入生产使用),使用RVM Ruby 1.9.3-p194,我发现这里列出的命令具有以下特点:
╔══════════════════════════════════════╤═══╗
║ command issued │OK?║
╟──────────────────────────────────────┼───╢
║ bundle exec rails console │ N ║
║ bundle exec rails console production │ Y ║
║ bundle exec rails server │ Y ║
║ bundle exec rails server production │ N ║
╚══════════════════════════════════════╧═══╝
我的第一个问题:这是预期的吗?(我本以为右列中的模式应该是N-Y-N-Y)。更多信息:在服务器上未安装sqlite3 gem的原因下,
bundle exec rails console
会失败。然而,bundle exec rails server production
出现了一个不太容易理解的跟踪错误。$ bundle exec rails server production
Exiting
/home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler.rb:63:in `require': cannot load such file -- rack/handler/production (LoadError)
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler.rb:63:in `try_require'
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler.rb:16:in `get'
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:269:in `server'
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/railties-3.2.3/lib/rails/commands/server.rb:59:in `start'
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/railties-3.2.3/lib/rails/commands.rb:55:in `block in <top (required)>'
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/railties-3.2.3/lib/rails/commands.rb:50:in `tap'
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/railties-3.2.3/lib/rails/commands.rb:50:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
我的第二个问题是:如何最好地排除此错误?