[Problema] Inicialização do servidor (Mongrel e/ou WEBrick)

Pessoal,

sou iniciante em RoR e já tentei por várias vezes iniciar o servidor da minha aplicação e não consigo nem com o Mongrel e nem com o WEBrick.
As mensagens que aparecem no console são as seguintes:

  1. Mongrel:

=> Booting Mongrel
=> Rails 2.3.4 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel/tcphack.rb:13:in listen': Permission denied - listen(2) (Errno::EACCES) from C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel/tcphack.rb:13:ininitialize’
from C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:93:in new' from C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:93:ininitialize’
from C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:10:in new' from C:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:10:inrun’
Exiting
from C:/ruby/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/commands/server.rb:111
from C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require' from C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inrequire’
from ./script/server:3
from -e:2:in `load’
from -e:2

  1. WEBrick

=> Booting WEBrick
=> Rails 2.3.4 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server[2010-05-13 20:58:52] INFO WEBrick 1.3.1

[2010-05-13 20:58:52] INFO ruby 1.8.6 (2008-08-11) [i386-mswin32]
[2010-05-13 20:58:52] INFO WEBrick::HTTPServer#start: pid=5036 port=3000

As linhas com data-hora em colchetes estão em vermelho.
No caso do WEBrick, na aba Servers do RadRails o status do meu server está ‘Running’, porém, quando clico em ‘Launch Browser’ aparece a janela de navegação cancelada.

Existe algum problema por eu estar usando Windows 7 de 64 bits?
Foi a única coisa que eu conseguie pensar até agora…

Cara, em primeiro lugar, pelo seu stacktrace parece que você está usando uma versão do Ruby para x86. Um bug era o mínimo a se esperar num sistema 64 bits, certo? :stuck_out_tongue:

Não sei o porque desse erro, mas parece que os servers não estão conseguindo usar uma porta. Se vc já tiver com outro server startado, vc não vai conseguir startar o segundo.
Se não for isso, veja se tem algum processo usando a porta 1024 do seu SO. Estou chutando isso, pelo que vi no código do arquivo tcpstack.rb na linha 12, que é para onde seu stacktrace está apontando como local do erro.

[code]class TCPServer
def initialize_with_backlog(*args)
initialize_without_backlog(*args)
listen(1024)
end

alias_method :initialize_without_backlog, :initialize
alias_method :initialize, :initialize_with_backlog
end[/code]

Dica: use linux numa vm para programar em Ruby, vai te poupar muita dor de cabeca e quando vc precisar de trabalhar muito com Rails, vai precisar de um terminal bom.

Tenho Windows 7(64) aqui em casa, programei durante algum tempo Ruby/Rails nele com gVim. Sinceramente nunca enfrentei esse tipo de bug com nenhum dos servidores. As vezes o Webrick não fechava com ctrl+c, mas ai era só dar uma forçada pra ele fechar. Tente atualizar os seus gems e baixe uma versão nova, as vezes quem sabe pode funcionar.
Verifique suas portas como DLT mencionou, pode ser isso tbm. Até mais.

Na verdade eu supus erroenamente que o windows 7 64 bits não roda programas compilados para x86, mas ele pode ser instalado com modo de compatibilidade x86.

Mesmo assim, o windows é a pior plataforma para se desenvolver em Ruby/Rails. Digo isso porque desenvolvi em rails no windows (porque era obrigado) por muitos meses e sei o saco que é. Incompatibilidades de algumas gems, falta de um shell decente, etc. Se você não quer instalar o linux na sua máquina, instala pelo menos em uma vm, vai poupar muita dor de cabeça.

Não tenho muito a discordar DLT, pois já vi muito amigo meu sofrendo. Incompatibilidade ao menos com as gems que eu usei consegui sempre achar uma alternativa. Já houve uma época que certas coisas eram realmente bem mais fáceis, mas vc realmente disse muita coisa.
Apesar de ter como instalar alguns shells para programar em windows, é muito mais fácil instalar uma VM e poupar essas dores de cabeças que podem ser burladas.