Ruby on rails 防止puma在本地运行(ruby on rails)

Ruby on rails 防止puma在本地运行(ruby on rails),ruby-on-rails,puma,Ruby On Rails,Puma,我最近开始在我的生产服务器上使用Puma和nginx,但是,当我现在尝试在本地运行我的应用程序时,它尝试使用我的所有生产设置运行Puma,但失败了。如何防止Puma在本地运行 我所做的只是将puma gem添加到我的gem文件中,所以我不知道它是如何访问我的服务器配置的(我只是在这方面不太了解)。我的制作组中有: group :production do gem 'pg' gem 'rails_12factor' gem 'puma' end 错误: → rails s =>

我最近开始在我的生产服务器上使用Puma和nginx,但是,当我现在尝试在本地运行我的应用程序时,它尝试使用我的所有生产设置运行Puma,但失败了。如何防止Puma在本地运行

我所做的只是将puma gem添加到我的gem文件中,所以我不知道它是如何访问我的服务器配置的(我只是在这方面不太了解)。我的制作组中有:

group :production do
  gem 'pg'
  gem 'rails_12factor'
  gem 'puma'
end
错误:

→ rails s
=> Booting Puma
=> Rails 4.2.6 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[8917] Puma starting in cluster mode...
[8917] * Version 3.4.0 (ruby 2.0.0-p645), codename: Owl Bowl Brawl
[8917] * Min threads: 1, max threads: 6
[8917] * Environment: development
[8917] * Process workers: 1
[8917] * Phased restart available
[8917] * Listening on tcp://localhost:3000
[8917] Use Ctrl-C to stop
/rbenv/versions/2.0.0-p645/lib/ruby/gems/2.0.0/gems/puma-3.4.0/lib/puma/runner.rb:103:in `reopen': No such file or directory - /Users/me/mll/shared/log/puma.stdout.log (Errno::ENOENT)

此外,虽然现在对我来说不太重要,但在当地经营彪马对我有好处吗?如果是这样的话,关于我如何做到这一点的任何提示/资源?

您需要将
puma
放入您的生产组。像这样:

group :production do
   gem 'puma'
end
这样,彪马将只用于生产,而不是开发

更新 确保您的
bin/rails
文件如下所示:

#!/usr/bin/env ruby
APP_PATH = File.expand_path('../../config/application', __FILE__)
require_relative '../config/boot'
require 'rails/commands'

和本有着完全相同的问题。在开发和测试时,我尝试在本地使用WebBrick,在生产中使用puma

Gem文件是完美的定义,因为puma只位于生产组中“bin/rails”和“config/application”被选中,与@Răzvan Ciocănel建议的相同。仍然在本地启动“puma”

最后,查看“bundle安装”gem列表,“puma”与其他“production”gem一起安装。运行“bundle install--without production”,现在本地将以web brick作为ROR默认启动

我想只要puma是捆绑安装的,它就会被加载到本地,除非你配置了一些东西来强制关闭它。因此,解决方案可能是在开发和测试中删除bundle列表中的gem

Rails 3项目(它的挂起时间比预期的长…) 我在gemfile的制作组中从独角兽变成了彪马

group :production do
  gem 'puma'
end
然后,当尝试运行测试或开发服务器(应该是精简的)时,我得到:

经过一番探索(包括找到这个问题),我放弃了,决定继续在开发中使用puma。我运行了bundle安装并尝试运行server,瞧,thin又开始工作了

然后我意识到我仍然只有它在生产组中--我回顾了捆绑安装,没有安装任何东西,puma仍然没有安装。但是现在,自从对gemfile进行了编辑之后,bundle安装已经运行,一切都恢复了正常

C:\Rails Projects\Rep>rails s
=> Booting Thin
=> Rails 3.2.22.2 application starting in development on http://0.0.0.0:3000

所以我猜“丢失gem”的错误不是因为它试图实际运行puma,而是由于未受诱惑的gemfile而导致的某种bundler生成的错误?把它放出来,以防在类似情况下,任何人来到这里都会加快速度。

你怎么运行它?只是运行
rails s
,这很奇怪,我认为puma在使用
rails s
@Ben时没有接受配置。你找到解决问题的方法了吗?谢谢你的回答-对不起,我的问题说错了-我把它放在了我的生产组中,我仍然有同样的问题(更新的问题)。你把它放在
生产组后捆绑了吗?是的。我甚至完全删除了repo,再次克隆了它(w/它已经在生产组中)并重新绑定,同样的错误,或者确保gem文件中没有该组之外的gem。还有,你在application.rb中弄乱了这一行吗<代码>Bundler.require(*Rails.groups)
C:\Rails Projects\Rep>rails s
=> Booting Thin
=> Rails 3.2.22.2 application starting in development on http://0.0.0.0:3000