在Rails中将本地Web服务器更改回WEBrick,从Puma

22

我正在遵循Heroku文档上有关设置Puma的指南,并输入了以下命令:

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

现在每次我运行rails s时,都会在我的开发环境中使用Puma。但由于某种原因,Puma正在造成混乱。如何切换回使用WEBrick?

已尝试:

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

当然,命令未找到:webrick。如果那么简单就太容易了...

谢谢!


你的 Procfile 里写了什么? - Joel
4个回答

36

使用 webrick 在开发环境下运行本地服务器,只需在运行 rails server 时指定即可:

rails server webrick

如果你把 Puma 移到 Gemfile 的生产环境组中,就可以将其恢复为默认的 Webrick:

group :production do
  gem 'puma'
end

然后在不使用生产环境组的情况下打包:

bundle install --without production

11
第一部分可行,但将"gem 'puma'"放在生产组中却无效。 - JosephK
2
确认JosephK在Rails 4.2.5上发布的行为。 - Raphael Ottoni
这是因为将它放在 :production 组中并不能自动阻止它在 :development 上被安装。你需要明确告诉它不要与 bundle install --without production 一起安装。 - user2490003

3
根据以下内容:

如何将Rails开发服务器设置为WebBrick而不是Puma

您需要更改Gemfile文件:

group :production do
  gem 'puma'
end

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


1
从gemfile中删除puma gem并进行bundle。
启动应用程序。您可以在控制台中看到webrick应用程序服务器的启动信息。
默认应用程序Web服务器是Webrick。

没错,非常好用。Puma 5.0.2之后对我们造成了一些严重的减速 - 不可用。请参见https://github.com/puma/puma/issues/2484。它从未得到修复,现在除非您升级,否则会存在安全问题。回到Webrick,因为它是开发的默认选项。 - Joshua Pinter

0

使用以下命令运行:

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

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

bundle add webrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接