Instalação do mod_rails

Post movido para: http://blog.guilhermegarnier.com/2008/04/22/instalacao-do-mod_rails/

Recentemente foi lançado o Phusion Passenger, mais conhecido como mod_rails. Trata-se de um módulo Apache para Rails que promete oferecer configuração e deploy de aplicações mais simplificado do que com o Mongrel, além de ser mais estável e utilizar menos memória.

Tentei instalar o mod_rails e encontrei várias dificuldades. Inicialmente tentei instalar no CentOS 4.4, mas não consegui. Encontrei alguns conflitos de versões de pacotes (pré-requisitos do mod_rails), e ainda não consegui concluir a instalação.

Em seguida, tentei instalar no Ubuntu 7.10. As dificuldades foram menores, mas ainda assim não foi tão simples quanto parece pelo guia do usuário. Segue o passo-a-passo da instalação:

  1. Instalar os pré-requisitos:
    sudo apt-get install apache2-mpm-prefork apache2-prefork-dev libapr1-dev
    
  2. Instalar o gem do mod_rails:
    sudo gem install passenger
    
  3. Definir as seguintes variáveis de ambiente:
    export HTTPD=/path/to/httpd
    export APXS=/path/to/apxs (ou apxs2)
    
  4. Executar o script de instalação do módulo Apache:
    sudo /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/bin/passenger-install-apache2-module
    
  5. Habilitar o mod_rails no httpd.conf do Apache, adicionando as linhas a seguir:
    LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/ext/apache2/mod_passenger.so
    RailsSpawnServer /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/bin/passenger-spawn-server
    RailsRuby /usr/bin/ruby1.8
    RailsEnv PROD
    

    A última linha acima define o ambiente Rails que será utilizado. Se você omitir esta linha, será usado o ambiente padrão (production).

  6. criar um virtual host no Apache:
    <VirtualHost *:80>
      ServerName localhost
      DocumentRoot /var/www/rails/public
    </VirtualHost>
    

Na configuração acima, DocumentRoot é o diretório public da sua aplicação Rails.

Ao concluir estas configurações e reiniciar o Apache, minha aplicação funcionou, porém os arquivos que estão no diretório public (arquivos javascript, css e imagens) não estavam acessíveis. Para resolver este problema:

  • habilite o mod_rewrite
  • adicione à configuração do virtual host:
    <Directory "/var/www/rails/public" >
        Options         FollowSymLinks
        AllowOverride   All
    </Directory>
    
  • reinicie o Apache

Assim, finalmente consegui fazer a aplicação funcionar corretamente. Ainda não fiz nenhum benchmark comparando o mod_rails com o Mongrel, mas todos os que encontrei até agora são favoráveis ao mod_rails, como estes:

5 Responses to “Instalação do mod_rails”


  1. 1 Thiago Antonius fevereiro 28, 2009 às 6:48 pm

    Como faço para configurar mais de uma app rails no mod_rails.

    #
    # ServerName app.agenda
    # DocumentRoot /var/www/rails/agenda/public
    #

    #
    # ServerName app.livraria
    # DocumentRoot /var/www/rails/livraria/public
    #

    isso no mac funciona, porque eu defino os hosts também

    127.0.0.1 localhost app.agenda app.livraria

    porém no linux (ubuntu) não achei esse arquivo.

    Poderia me ajudar?

    vlw

  2. 2 ggarnier março 2, 2009 às 7:42 am

    Thiago, no Linux o procedimento é o mesmo. O arquivo para configuração de hosts é /etc/hosts

  3. 3 Thiago Antonius março 2, 2009 às 7:51 am

    É eu terminei descobrindo isso. vlw
    Só acho estranho que nenhum tutorial de instalação de mod_rails no linux fala disso, já os tutoriais pro mac todos abordam. Por acaso no linux tem alguma outra forma de configurar multiplas apps rails sem definir no /etc/hosts ?

  4. 4 ggarnier março 3, 2009 às 7:18 am

    Até onde eu sei, é necessário definir um nome para cada app mesmo. Encontrei um artigo aborda essa configuração:

    http://nubyonrails.com/articles/ask-your-doctor-about-mod_rails


  1. 1 Nova versão do mod_rails lançada « Guilherme Garnier Trackback em dezembro 17, 2008 às 11:56 am

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




@guilhermgarnier

Erro: o Twitter não respondeu. Por favor, aguarde alguns minutos e atualize esta página.

Estatísticas

  • 58,044 hits
Linux Counter

%d blogueiros gostam disto: