【问题标题】:Change local web server back to WEBrick in Rails from Puma从 Puma 将本地 Web 服务器更改回 Rails 中的 WEBrick
【发布时间】:2015-02-19 03:45:28
【问题描述】:

我正在关注 Heroku 文档,了解如何设置 Puma 并输入以下命令:

bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development}

这使得现在每当我运行rails s 时,我都会在我的开发环境中运行 puma。但是,无论出于何种原因,彪马正在造成浩劫。如何切换回使用 WEBrick??

试过了

bundle exec webrick -p ${PORT:-3000} -e ${RACK_ENV:-development}

当然,找不到命令:webrick。知道这太容易了……

谢谢!

【问题讨论】:

  • 你的 Procfile 是怎么说的?

标签: ruby-on-rails webrick puma


【解决方案1】:

要使用 webrick 在开发中运行本地服务器,您只需在运行 rails server 时指定它:

rails server webrick

如果您将 puma 移至 Gemfile 的生产组,您可能会再次将其默认恢复为 webrick:

group :production do
  gem 'puma'
end

然后在没有生产组的情况下捆绑:

bundle install --without production

【讨论】:

  • 第一部分有效,但将“gem 'puma'”放在生产组中不起作用。
  • 确认 JosephK 在 Rails 4.2.5 上发布的行为
  • 这是因为将它放在:production 组中不会自动阻止它安装在:development 上。您需要明确告诉它不要使用bundle install --without production 安装它
【解决方案2】:

根据以下:

How to set Rails dev server to webbrick instead of Puma

您想将 Gemfile 更改为:

group :production do
  gem 'puma'
end

运行 bundle install --without production 会将 WEBrick 设置为非生产(开发和测试)服务器,并将 Puma 设置为生产。

【讨论】:

    【解决方案3】:

    从 gemfile 中移除 puma gem 并将其打包。

    并启动应用程序。您可以在控制台中看到 webrick 应用服务器启动信息。

    默认应用网络服务器是 Webrick

    【讨论】:

    • 是的。工作一种享受。 5.0.2 之后的 Puma 对我们造成了一些重大的减速 - 无法使用。见github.com/puma/puma/issues/2484。它从未得到修复,除非您升级,否则现在存在安全问题。回到 Webrick,因为无论如何它都是 dev 的默认设置。
    【解决方案4】:

    运行:

    bundle exec rails server -u webrick -p 3000 -e staging
    

    您可能还需要安装webrick。但我记得它是标准库的一部分

    bundle add webrick
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-02
      • 2016-06-14
      • 1970-01-01
      • 2012-09-04
      • 2021-05-26
      • 1970-01-01
      • 2012-08-04
      • 2012-11-26
      相关资源
      最近更新 更多