【问题标题】:Rails console vs server differences on production serverRails 控制台与生产服务器上的服务器差异
【发布时间】:2012-06-04 18:37:45
【问题描述】:

在使用 RVM Ruby 1.9.3-p194 将一个非常基本的 Rails 3.2.3 试用站点部署到“生产”服务器(不是真的在生产中,谢天谢地!)后,我发现以下列出的命令是正确的这里:

╔══════════════════════════════════════╤═══╗
║ 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。)

更多信息:bundle exec rails console 失败的原因可以理解,即 sqlite3 gem 未安装在服务器上。但是,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>'

我的第二个问题:如何最好地解决此错误?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 dreamhost fastcgi


    【解决方案1】:

    您不想使用生产环境以生产模式启动服务器吗?

    rails server -e production
    

    rails 控制台环境和rails server -e 环境的语法区别有点像PITA

    【讨论】:

    • 对于瘦服务器,这是正确的....对于 Webrick,您还需要运行 RAILS_ENV=production rails s
    【解决方案2】:

    在控制台生产的情况下指定环境,在服务器的情况下它指定其他东西(可能使用哪个服务器 webrick/...)。

    所以如果你想指定环境做:

    ENV=production rails server
    

    【讨论】:

      猜你喜欢
      • 2015-03-30
      • 1970-01-01
      • 2012-08-03
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      • 2015-10-07
      • 1970-01-01
      相关资源
      最近更新 更多