0

我从该站点的用户那里得到了一些非常好的指导,我认为一些高级 Rails 人员可以帮助我解决以下问题。

我正在尝试在 win32 服务器上部署一个简单的 Rails 应用程序。

我一直在仔细阅读这些说明(请参阅http://functionalelegant.blogspot.com/2008/05/deploying-rails-on-windows.html)以进行 win32 Rails 应用程序部署。

我从或多或少的干净 Windows 安装开始,然后下载并安装

  1. 红宝石
  2. 轻型TPD
  3. 导轨
  4. Zed 的 SCGI Rails Runner
  5. Windows Server 2003 资源工具包工具
  6. Ruby/DBI ADO 包

之后,我做了以下事情:

我已经注释掉了 SCGI gem 中的那一行(这实际上是造成了麻烦。)

我按照建议创建了目录结构,其中包含日志文件夹。

我修改了 scgi.yaml 文件和 Lighty 配置文件以反映我的环境设置。

之后,我编写了批处理脚本来启动 Lighty 和 SGCI 进程。它们似乎运行正确。但是,在 app-errors.log 中会出现以下几行:

2009-05-15 16:48:06: (mod_scgi.c.2645) fcgi: got a FDEVENT_ERR. Don't know why. 
2009-05-15 16:48:06: (mod_scgi.c.2469) emergency exit: scgi: connection-fd: 7 fcgi-fd: 8 

最后,当我导航到http://localhost:xxxx/时,我只看到一个空白页面。更新:我刚刚意识到空白页似乎只是。查看源代码发现以下问题:

2C:/Ruby/lib/ruby/1.8/drb/drb.rb:573:in `load'":C:/Ruby/lib/ruby/1.8/drb/drb.rb:612:in `recv_request'":C:/Ruby/lib/ruby/1.8/drb/drb.rb:911:in `recv_request'"?C:/Ruby/lib/ruby/1.8/drb/drb.rb:1530:in `init_with_client'"<C:/Ruby/lib/ruby/1.8/drb/drb.rb:1542:in `setup_message'"6C:/Ruby/lib/ruby/1.8/drb/drb.rb:1494:in `perform'"8C:/Ruby/lib/ruby/1.8/drb/drb.rb:1589:in `main_loop'"3C:/Ruby/lib/ruby/1.8/drb/drb.rb:1585:in `loop'"8C:/Ruby/lib/ruby/1.8/drb/drb.rb:1585:in `main_loop'"4C:/Ruby/lib/ruby/1.8/drb/drb.rb:1581:in `start'"8C:/Ruby/lib/ruby/1.8/drb/drb.rb:1581:in `main_loop'"2C:/Ruby/lib/ruby/1.8/drb/drb.rb:1430:in `run'"4C:/Ruby/lib/ruby/1.8/drb/drb.rb:1427:in `start'"2C:/Ruby/lib/ruby/1.8/drb/drb.rb:1427:in `run'"9C:/Ruby/lib/ruby/1.8/drb/drb.rb:1347:in `initialize'"2C:/Ruby/lib/ruby/1.8/drb/drb.rb:1627:in `new'"<C:/Ruby/lib/ruby/1.8/drb/drb.rb:1627:in `start_service'"MC:/Ruby/lib/ruby/gems/1.8/gems/scgi_rails-0.4.3/lib/scgi.rb:402:in `run'"HC:/Ruby/lib/ruby/gems/1.8/gems/scgi_rails-0.4.3/bin/scgi_service:61"*C:/Ruby/bin/scgi_service:19:in `load'" C:/Ruby/bin/scgi_service:19:   mesg" too large packet

请注意,“ruby 脚本/服务器”运行得很好,但该页面无法在外部看到。

有任何想法吗?请让我知道是否有任何事情发生在你身上。

4

1 回答 1

3

我在“部署 Rails 应用程序”中为此编写了这一章。http://www.pragprog.com/titles/fr_deploy/deploying-rails-applications

基本上,您需要 mongrel、mongrel_service 和 apache 2.2 以及适用于 windows 的 mod_proxy_balancer。

您安装了 2 个或更多应用程序实例,并在不同的端口上运行 Mongrel。您将服务设置为自动启动。

然后你设置 apache 来平衡它们。

这在书中都有概述,我的网站上也有一些较早的文章——如果你搜索“在 windows 上脱轨”,你会发现一些非常过时的东西。apache+mongrel 方式是目前适用于 Windows 的最佳方式,如果您需要其他帮助,请随时告诉我。我很乐意提供帮助。

于 2009-05-16T01:36:58.900 回答