【问题标题】:Why do I get an error when starting ruby on rails app with mongrel_rails为什么在使用 mongrel_rails 启动 ruby​​ on rails 应用程序时出现错误
【发布时间】:2010-09-12 15:33:51
【问题描述】:

为什么我在尝试使用

启动 ruby​​ on rails 应用程序时会出现以下错误
mongrel_rails 开始
? C:\RailsTest\cookbook2>mongrel_rails 开始 ** 警告:Win32 不支持守护程序模式。 ** 守护进程,所有打开的文件都被关闭。查看 log/mongrel.pid 和 log/mongr el.log 获取信息。 ** 在 0.0.0.0:3000 开始 Mongrel 监听 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../lib/mongrel/t cphack.rb:12:in `initialize_without_backlog': 每个套接字地址只有一次使用 ess(协议/网络地址/端口)通常是允许的。 - 绑定(2) (Errno::EAD 饮用) 来自 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel/tcphack.rb:12:在“初始化”中 来自 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel.rb:93:在“新”中 来自 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel.rb:93:在“初始化”中 来自 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel/configurator.rb:139:in `new' 来自 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel/configurator.rb:139:in `listener' 来自 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon grel_rails:99:in `cloaker_' 来自 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel/configurator.rb:50:in `call' 来自 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel/configurator.rb:50:in `initialize' 来自 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon grel_rails:84:在“新”中 来自 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon grel_rails:84:在“运行”中 来自 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel/command.rb:212:在“运行”中 来自 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon grel_rails:281 来自 c:/ruby/bin/mongrel_rails:19:in `load' 来自 c:/ruby/bin/mongrel_rails:19

【问题讨论】:

    标签: ruby-on-rails ruby mongrel


    【解决方案1】:

    我自己不在 Windows 上使用 mongrel,但我猜这个错误相当于 Linux 的“使用中的端口”错误。您是否尝试将服务器绑定到其他已经在监听的端口?

    【讨论】:

    • ...最有可能的罪魁祸首是你上次启动它时仍在运行的杂种 :)
    【解决方案2】:

    您已经有一个进程正在侦听端口 3000(mongrel 的默认端口)。

    试试:

    mongrel_rails start -p 3001
    

    看看你是否得到类似的错误。

    如果您尝试安装多个 Rails 应用程序,则需要将每个 mongrel 分配到一个单独的端口并相应地编辑您的 apache conf。

    如果您不尝试这样做,杀死所有杂种的最直接方法是打开 Windows 任务管理器并杀死所有“ruby”进程。

    请注意,如果您将 mongrel 安装为自动启动的服务

    mongrel_rails install::service ...
    

    ...ruby 进程将自动重新生成。在这种情况下,您必须通过 Windows 服务面板编辑进程属性。如果您需要更多信息,请告诉我。

    【讨论】:

      【解决方案3】:

      在 Windows 上,我找到了解决此问题的两种可能方法:

      1. 解决方法:在另一个端口启动 mongrel Web 服务器
      2. 解决方法:在任务管理器中找到ruby.exe进程并完成

      【讨论】:

        猜你喜欢
        • 2019-11-11
        • 2020-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多