1

Ruby on Rails アプリケーションを起動しようとすると、次のエラーが発生するのはなぜですか?

mongrel_rails 開始
?

 
C:\RailsTest\cookbook2>mongrel_rails スタート
** 警告: Win32 はデーモン モードをサポートしていません。
** デーモン化され、開いているファイルはすべて閉じられます。log/mongrel.pid と log/mongr を見てください。
el.log を参照してください。
** Mongrel のリッスンを 0.0.0.0:3000 で開始
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': 各ソケット addr の 1 つの使用のみ
ess (プロトコル/ネットワーク アドレス/ポート) は通常許可されます。- bind(2) (Errno::EAD
ドリヌス)
        c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ から
lib/mongrel/tcphack.rb:12:in `initialize'
        c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ から
lib/mongrel.rb:93:in `new'
        c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ から
lib/mongrel.rb:93:in `initialize'
        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 `リスナー'
        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:in `new'
        c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon から
grel_rails:84:in `run'
        c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ から
lib/mongrel/command.rb:212:in `run'
        c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon から
grel_rails:281
        from c:/ruby/bin/mongrel_rails:19:in `load'
        c:/ruby/bin/mongrel_rails:19 より
4

3 に答える 3

2

私自身は Windows で mongrel を使用していませんが、このエラーは Linux の「使用中のポート」エラーに相当すると思います。他の何かが既にリッスンしているポートにサーバーをバインドしようとしていますか?

于 2008-09-24T06:54:12.227 に答える
2

ポート 3000 (mongrel のデフォルト ポート) でリッスンするプロセスが既にあります。

試す:

mongrel_rails start -p 3001

同様のエラーが発生するかどうかを確認します。

複数の Rails アプリをインストールしようとしている場合は、各 mongrel を個別のポートに割り当て、それに応じて apache conf を編集する必要があります。

そうしようとしない場合、すべての雑種を殺す最も直接的な方法は、Windows タスク マネージャを開いてすべての「ruby」プロセスを殺すことです。

自動的に開始するサービスとしてmongrelをインストールしている場合は注意してください

mongrel_rails install::service ...

... ruby​​ プロセスは自動的に再生成されます。その場合、Windows サービス パネルからプロセス プロパティを編集する必要があります。さらに情報が必要な場合はお知らせください。

于 2008-09-24T12:18:48.000 に答える
0

Windows では、この問題を解決する 2 つの方法を見つけました。

  1. 回避策: Mongrel Web サーバーを別のポートで起動します。
  2. 解決策: タスク マネージャーで ruby​​.exe プロセスを見つけて終了します。
于 2009-08-19T18:47:08.513 に答える