首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个带有ActionCable的Rails 5应用程序能在Windows上部署吗?

一个带有ActionCable的Rails 5应用程序能在Windows上部署吗?
EN

Stack Overflow用户
提问于 2016-08-12 15:16:07
回答 1查看 750关注 0票数 2

我计划在Linux上部署一个Rails 5应用程序,但由于我们需要一些非常特定的Windows专用软件,所以我需要在Windows 2012 R2上部署它。我的软件栈(或者混合)应该是Nginx/Puma/Rails/PostgreSQL/Redis。除了Puma之外,所有东西都在Windows上为我安装,Rails文档说我需要用于ActionCable的Puma。

如何让Puma在Windows上运行?我已经看到并尝试过一些要尝试的事情,我也看到并尝试了一些不应该做的事情,比如在守护进程模式下运行,因为不支持叉子()。有没有人有一组关于如何让Puma在Windows上使用Rails应用程序的可重复指令?

或者,如果Puma不适合Windows,那么是否有一个可重复的替代方案来将带有ActionCable的Rails 5应用程序部署到Windows主机(例如Windows2012 R2)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-15 17:15:34

根据来自github页面的自述文件,需要记住以下几点:

  • 不支持守护进程模式。因此,如果有这样的行,请注释掉/删除以下内容。 去母化假
  • 工作人员在Windows中不工作,因为它不支持进程。我们希望工人是"0“。因此,请注释掉以下几行: workers 2#默认为"0“preload_app!
  • 服务器套接字在重新启动时不是无缝的,必须关闭并重新打开。这些平台无法将描述符传递到向ruby公开的新流程中。
  • 不要使用unix套接字,而是将服务器绑定到"tcp://“。因此,请注释掉如下所示的任何行: 绑定‘unix://var/run/puma.sock’bind‘unix://var/run/puma.sock?umask=0111’ 相反,请使用以下内容: 如果不需要指定端口#,则绑定"tcp://127.0.0.1:4001“#,因为默认情况是"tcp://0.0.0.0:9292”
  • 如果在启动rails服务器后看到任何http解析错误(格式错误的http请求),请尝试这个答案。如果不起作用,请从config/ environment /production.rb或config/environment/production.rb中注释掉这一行(取决于您希望运行Puma的环境) config.force_ssl =真

下面是puma.rb文件的样子:

代码语言:javascript
复制
worker 0     # Not necessary. The default is "0"    

threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i
threads threads_count, threads_count

bind "tcp://127.0.0.1:4001"    # Not necessary. Default is "tcp://0.0.0.0:9292"

environment ENV.fetch("RAILS_ENV") { "development" }

plugin :tmp_restart

最后,运行bundle exec puma -C config\puma.rb,它应该可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38921292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档