Como posso executar scripts Ruby via Apache (não necessariamente usando o Rails)?

8

Estou tentando fazer com que o Apache interprete meus arquivos Ruby, mas não entendo como fazê-lo. Eu não estou preocupado com o Rails agora, apenas o Ruby. O que eu encontrei pesquisando apenas me confunde. Algum conselho?

    
por Jason Swett 27.01.2011 / 17:57

4 respostas

3

A maneira mais comum de executar o código ruby em um ambiente de servidor da Web é ter o código implementando uma interface de rack. É uma API muito simples que permite que o servidor da Web fale com seu aplicativo ruby. Para o Apache, o manipulador de rack mais comum é o passageiro (também conhecido como mod_rails e mod_rack). Quase todos os frameworks web atuais do ruby (como rails, sinatra, camping, ...) se conectam ao servidor web usando um manipulador de rack. Você pode usar uma dessas estruturas, mas também pode escrever aplicativos de rack diretamente sem eles. Todos os servidores de aplicativos Ruby (mongrel, thin, unicorn, rainbows, ...) implementam a interface de rack.

Outra alternativa seria usar (f) cgi, mas eu aconselharia você a ficar longe dessa rota, já que a interface e os protocolos são desajeitados e não fornecem recursos de gerenciamento modernos.

    
por 20.02.2011 / 14:05
1

Você pode executar scripts ruby com cgi rápido. Veja o projeto fcgi para mais informações.

    
por 16.02.2011 / 15:27
1

Eu tenho tentado encontrar a resposta simples para esta questão já há algum tempo, e descobri que tudo que você precisa fazer é colocar o script ruby no diretório cgi-bin do seu servidor web e carregar o URL correspondente. Então, por exemplo, na minha instalação padrão do CentOS 6.2 / httpd, eu coloquei um script chamado hello.rb em / var / www / cgi-bin / e então carreguei link no meu navegador e ele executou o script e me mostrou o que foi para STDOUT (ou seja, de puts, etc).

O que acontece aqui é sempre que o URL é carregado, o script é executado completamente. Isso não é ideal para um servidor de alto volume ou onde a velocidade é crucial - então algo como o fastCGI mantém o script sempre em execução, mas você precisa escrever o script para lidar com isso.

espero que ajude.

    
por 19.03.2012 / 02:02
0

Experimente o modruby .

    
por 27.01.2011 / 18:27