Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Windows上部署Rails 3应用程序?_Windows_Ruby On Rails 3_Service - Fatal编程技术网

如何在Windows上部署Rails 3应用程序?

如何在Windows上部署Rails 3应用程序?,windows,ruby-on-rails-3,service,Windows,Ruby On Rails 3,Service,我一直在寻找在Windows上可靠部署Rails 3应用程序的方法。我感到非常震惊的是,目前似乎没有任何方法可以做到这一点。Apache+少数Mongrel服务解决方案目前无法工作,因为Mongrel无法在守护程序模式下运行,因此我无法将其安装为Mongrel_服务 我想这些要求应该是: 与Rails 3兼容的web服务器 必须能够作为Windows服务运行,DAEMONIED 必须能够在出现问题时自动重启 必须是生产质量:无内存泄漏等 应该能够扩展并同时接受多个请求 减少黑客攻击的可能性

我一直在寻找在Windows上可靠部署Rails 3应用程序的方法。我感到非常震惊的是,目前似乎没有任何方法可以做到这一点。Apache+少数Mongrel服务解决方案目前无法工作,因为Mongrel无法在守护程序模式下运行,因此我无法将其安装为Mongrel_服务

我想这些要求应该是:

  • 与Rails 3兼容的web服务器
  • 必须能够作为Windows服务运行,DAEMONIED
  • 必须能够在出现问题时自动重启
  • 必须是生产质量:无内存泄漏等
  • 应该能够扩展并同时接受多个请求
  • 减少黑客攻击的可能性
我发现了这些事情:

  • Mongrel还没有为Rails 3(1.2.0pre)做好生产准备,我在控制台窗口中很快就遇到内存泄漏。应用程序刚刚退出
  • Mongrel不能在Rails 3的守护程序模式(
    -d
    )下运行
  • 因此,Mongrel不能作为服务安装
  • Windows上不提供Phusion Passenger(这将是最佳解决方案)
以下是我提出的可能解决方案:

  • 获得一个Linux机器,安装Apache+Phusion Passenger并滚动
  • 然而,作者说精简过程并没有被“保护”
  • 然而,作者说他只是运行了一个默认应用程序,而不是一个完整的运行应用程序
  • 。我认为这个解决方案遇到了与上面相同的问题
  • 使用Linux虚拟化,但我必须解决自动启动等问题
  • 在Tomcat中的JRuby上运行
这可能是一个方便的工具:

我希望我们能找到这个问题的真正解决办法


更新:


我同意JRuby+j2ee容器是最好的选择。有些问题必须解决,比如带有扩展的gems等。这里有很多有价值的想法:

就个人而言,我认为JRuby+Tomcat大道将是你最好的选择,因为Tomcat在Windows上经过审查,而且它与JRuby都相当稳定。我的第一个想法也是乘客,遗憾的是它还没有移植。

这是我目前正在运行的设置:

  • Windows server 2008
  • Apache2.2
  • 精简服务器
  • Ruby 1.9.2
  • Rails 3.0.9
本伟大的教程“”介绍了这些方面的安装。我忽略了LDAP和ActiveDirectory部分,但是这里讨论了安装瘦服务器的一个很好的解决方法,因为
gem'Thin'
通常会在Windows上中断

对于生产,我设置了MySQL Server 5.5来托管我的数据库。mysql2适配器是Rails 3所必需的,但在我的Windows环境中尚不受支持。mysql适配器也会在Rails 3上抛出错误,但是作为一种解决方法,您可以通过安装旧版本的来让它工作。你只需要把它放到你的Ruby192/bin目录中

安装正确的mysql适配器和服务器后,您需要创建数据库:

>> mysql -u root -p  
[enter root pw]  
create database production;  
quit;  
# MySQL Production Database
production:
  adapter: mysql
  database: production
  pool: 5
  timeout: 5000
  encoding: utf8
  password: [your_root_password]
  host: localhost
(如果找不到“MySQL”,您可能需要将MySQL安装添加到路径中。)

最后,设置在\u rails\u app/config/database中找到的数据库配置:

>> mysql -u root -p  
[enter root pw]  
create database production;  
quit;  
# MySQL Production Database
production:
  adapter: mysql
  database: production
  pool: 5
  timeout: 5000
  encoding: utf8
  password: [your_root_password]
  host: localhost
其余部分(包括代理安装和作为Windows服务运行)将在“”中介绍。要确保基本精简设置正常运行,请执行以下操作:

thin start -p 3000 -e production

这将使用MySQL数据库在生产模式下在端口3000上启动服务器。这里唯一缺少的是负载平衡,我希望能很快找到答案

EngineYard很容易从windows环境部署rails应用程序,只需安装ey gem并更改gemfile中的一两项内容即可


开始时他们也会给你500小时的免费时间

谢谢Chris。我还想在此指出,Rails安装程序现在在一个包中安装ruby 1.9.2和Rails 3.1。请在这里查看:这是最好的答案!来自中国大陆的人必须通过VPN访问上面的url。也可以选择退房。