Estou tentando fazer o Apache interpretar meus arquivos Ruby, mas não entendo como fazê-lo. Não estou preocupado com Rails agora, apenas Ruby. O que encontrei no Google apenas me confunde. Algum conselho?
Estou tentando fazer o Apache interpretar meus arquivos Ruby, mas não entendo como fazê-lo. Não estou preocupado com Rails agora, apenas Ruby. O que encontrei no Google apenas me confunde. Algum conselho?
Respostas:
A maneira mais comum de executar código ruby em um ambiente de servidor da web é fazer com que o código implemente uma interface de rack. É uma API muito simples que permite ao servidor da web falar 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 todas as estruturas web ruby atuais (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 em rack diretamente sem elas. Todos os servidores de aplicativos ruby (híbrido, magro, unicórnio, arco-íris, ...) implementam a interface do rack.
Outra alternativa seria usar o (f) cgi, mas eu aconselho você a ficar longe dessa rota, pois a interface e os protocolos são estranhos e realmente não fornecem instalações de gerenciamento modernas.
Eu tenho tentado encontrar a resposta simples para esta pergunta há algum tempo e descobri que tudo o que você precisa fazer é colocar o script ruby no diretório cgi-bin do servidor da web e carregar a URL correspondente. Por exemplo, em minha instalação padrão do CentOS 6.2 / httpd, coloquei um script chamado hello.rb em / var / www / cgi-bin / e carreguei http: //localhost/cgi-bin/hello.rb no meu navegador e ele executou o script e me mostrou o que foi para STDOUT (ou seja, de putas, etc).
O que acontece aqui é sempre que a URL é carregada, o script é executado completamente. Isso não é ideal para um servidor da web de alto volume ou onde a velocidade é crucial - portanto, algo como o fastCGI mantém o script sempre em execução, mas você precisa escrevê-lo para lidar com isso.
espero que ajude.
Você pode executar scripts ruby com o cgi rápido. Veja o projeto fcgi para obter mais informações.
Tente modruby .
Invalid command 'RubyAddPath'
Isso é algum tipo de coisa esotérica que ninguém faz? Estou surpreso com a dificuldade de Ruby trabalhar com o Apache em comparação com o PHP.
AddHandler ruby-object .rbx
, LoadModule ruby_module /path/to/mod_ruby
, RubyRequire apache/ruby-run
, e RubyHandler Apache::RubyRun.instance
para httpd.conf
deve ser suficiente para uma configuração simples.