Instalando o mod_rails (Phusion Passenger) no Mac OS X Leopard
20 de Maio de 2008
Recentemente foi lançado o Phusion Passenger, módulo do Apache para deployment de aplicações Ruby on Rails e que,
apesar de novo, já está sendo usado por grandes provedores de hospedagem como Dreamhost e, nacionalmente, pela Locaweb, como anunciado no blog. Mas não é só o ambiente de produção que pode se beneficiar do mod_rails.
Se configurado no ambiente de desenvolvimento, você não precisará mais iniciar um servidor específico para cada uma das aplicações que você tiver. Basta criar um arquivo de configuração VHost, definindo qual é o nome do servidor que irá responder para uma determinada aplicação e você já pode acessá-la.
Antes de começar, certifique-se de que tem o XCode instalado, pois o instalador irá usá-lo para compilar o Phusion Passenger. Você também precisa ter Apache 2 instalado. Se você possui uma versão mais antiga, lembre-se de atualizá-lo antes de continuar a instalação.
Instalando o Phusion Passenger
Para instalar o Phusion Passenger, você deve instalar a gem chamada passenger.
sudo gem install passenger
Depois, execute o comando abaixo para iniciar a instalação automática.
sudo passenger-install-apache2-module
Se tudo correr bem, você verá uma mensagem com algumas linhas que devem ser adicionadas ao seu arquivo de configuração do Apache.
Configurando o Apache
Agora, você precisa configurar o Apache para que suas aplicações Ruby on Rails sejam iniciadas. Abra o arquivo "/etc/apache2/httpd.conf" e adicione as seguintes configurações ao final do arquivo:
LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-1.0.5/ext/apache2/mod_passenger.so
RailsSpawnServer /Library/Ruby/Gems/1.8/gems/passenger-1.0.5/bin/passenger-spawn-server
RailsRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
NameVirtualHost *
Include /private/etc/apache2/vhosts/*.conf
As três primeiras linhas devem ser substituídas pela sua própria configuração, aquela que apareceu quando você terminou de instalar o Phusion Passenger.
Crie o diretório onde serão adicionados os arquivos de configuração do VHost com o comando abaixo.
sudo mkdir /private/etc/apache2/vhosts
Agora, basta criar a configuração que irá identificar sua aplicação. Supondo que você tenha um projeto chamado 'spesa' —e você não tem!— no diretório '/Users/fnando/Sites', você adicionará as configurações abaixo ao arquivo "/private/etc/apache2/vhosts/spesa.conf":
<VirtualHost *>
ServerName dev.spesa
DocumentRoot /Users/fnando/Sites/spesa/public
RailsEnv development
</VirtualHost>
<Directory "/Users/fnando/spesa">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
Para que você possa acessar seu projeto digitando o nome do servidor, você precisa adicioná-lo ao seu arquivo de hosts. Abra o arquivo "/etc/hosts" e adicione a linha abaixo.
127.0.0.1 dev.spesa
Você pode adicionar diversos servidores para responderem em um mesmo IP; Basta separá-los por espaço, como no exemplo abaixo.
127.0.0.1 dev.spesa dev.soundslike
Remova o arquivo ".htaccess" presente no seu diretório "public" com o comando "rm ~/Sites/spesa/public/.htaccess".
Pronto! Seu ambiente já está configurado. Basta reiniciar o Apache com o comando "sudo apachectl restart" e acessar o projeto com o nome do servidor escolhido. Se, por algum motivo, sua aplicação não puder ser iniciada, uma mensagem do Phusion Passenger irá aparecer.

Existe uma documentação bastante completa, com diversas configurações adicionais que podem ser feitas, além de soluções para problemas comuns. Vale a pena dar uma olhada!
- Permalink
- Trackback
- Feed dos comentários
- Ao som de: Hit the Lights – Make a Run For It
Textos escritos por
Comentários #
Muito bom Nando, as coisas estão andando rápido em Rails, fico feliz.
Parabéns, muito explicativo.
Abraços
hoje só não usa rails no leopard quem não quer :D
só lembrando, ele já vem pré-instalado no felino [http://developer.apple.com/tools/developonrailsleopard.html]
[...] Nando mostra em seu artigo outra forma de carregar as informações das [...]
Muito bom! Parabéns
[...] também conhecido como mod_rails. Para aprender como fazer um deploy com o mod_rails, leia este excelente artigo do Nando Vieira. [...]
Nando, ótimo artigo. Depois de dois dias tentando habilitar o apache para funcionar com o FastCGI encontrei o seu blog \o
Agora minhas aplicações estão funcionando normalmente na máquina local... Porém, gostaria de poder acessa-las através de outras máquinas na rede. Você pode me indicar como fazer isto?
Ótimo artigo... estou começando agora com td d uma vez, passenger, apache, mac, rails, e to meio perdido ainda hehehe, mas funcionou perfeito!!
Só fiquei embananado em como acessar os arquivos private, mas aí descobri em outro site como fazia hehehe...
Muito obrigado!
Deixe um comentário