Posts de Agosto, 2008

h1

Tutorial de instalação do Rails com Phusion Passenger (mod_rails) para Ubuntu

28-08-2008

Mais um dos milhares e milhares de tutoriais de como instalar, mas as vezes é muito dificil de encontrar um que mostre tudo junto.

Primeiramente deve-se instalar o Ruby  e os programas necessários:

sudo apt-get install gcc g++ build-essential zlib1g zlib1g-dev

sudo apt-get install -y ruby1.8 ri1.8 rdoc1.8 rake irb1.8
Deve-se criar os links simbólicos para os executaveis, com os comandos:
cd /usr/bin
sudo ln -s ruby1.8 ruby
sudo ln -s ri1.8 ri
sudo ln -s rdoc1.8 rdoc
sudo ln -s irb1.8  irb

Para verificar se foi realmente instalado corretamente veja se há retorno ao comando:
ruby -v
Agora deve-se instalar o gerenciador de pacotes para o ruby o RubyGems.
Para isso pode-se utilizar-se do comando:
sudo apt-get install rubygems
ou então baixar o pacote mais atual do site e instalá-lo, isso é mais recomendável de se fazer.
E pode ser feito de uma maneira automatizada com os comandos:

LINK=$(wget -qO - http://rubyforge.org/frs/?group_id=126 |grep "rubygems-" -m 1 | sed 's/.*href="//g'| sed 's/".*//g')
VERSION=$(echo $LINK | sed 's/.*rubygems-//g' | sed 's/.t.*//g')
wget http://rubyforge.org$LINK
ARQ=$(echo $LINK |sed 's/.*rubygems-//g' )
tar -xvzf rubygems-$ARQ
cd rubygems-$VERSION
sudo ruby setup.rb

cd /usr/bin
sudo ln -s gem1.8 gem

Para verificar se foi realmente instalado corretamente veja se há retorno ao comando:
gem -v

Com isso se tem todo o ruby pronto para produção, porém está faltando agora o Rails e o Passenger. Para instalar o rails utiliza-se do gerenciador de pacotes RubyGems com o seguinte comando:

sudo gem install rails

Para verificar se foi realmente instalado corretamente veja se há retorno ao comando:

rails -v

Instalação do Passenger
Agora deverá ser instalado algumas dependencias dele:

sudo apt-get install -y apache2-mpm-prefork apache2-prefork-dev libapr1-dev libopenssl-ruby libopenssl-ruby1.8 libssl-dev  libssl0.9.8 g++ ruby1.8-dev

E para então instalar o passenger com o RubyGems

sudo gem install passenger

Agora ele está instalado, porém ainda falta instalar o modulo dele do apache.
Deve-se definir duas constantes antes de iniciar a instalação do módulo, são elas HTTPD e APXS2, ulilizando o comando :
export HTTPD=/pasta/do/httpd
export APXS2=/pasta/do/apxs2

No Ubuntu 8.04 e provavelmente nas versões anteriores o httpd é chamado de apache2ctl, abaixo segue o comando com a pasta padrões já inseridas.
export HTTPD=/usr/sbin/apache2ctl
export APXS2=/usr/bin/apxs2

Após definir as constantes instale o modulo apache do passenger utilizando o comando:
sudo passenger-install-apache2-module
Agora o modulo apache do passenger     está instalado, faltando apenas a configuração final.
Abre-se  o arquivo apache.conf ou o http.conf, no Ubuntu esses arquivos ficam no diretório /etc/apache2, e como dica utilize o arquivo http.conf, pois este até então está vazio.
Insira as seguintes linhas no arquivo:
LoadModule passenger_module /pasta/do/ruby/gems/versao_do_rubygems/gems/passenger-versao_do_passenger_instalado/ext/apache2/mod_passenger.so
PassengerRoot /pasta/do/ruby/gems/versao_do_rubygems/gems/passenger-versao_do_passenger_instalado
PassengerRuby /pasta/do/executavel/ruby1.8

No caso do ubuntu as linhas ficaram:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3
PassengerRuby /usr/bin/ruby1.8

Ainda no mesmo arquivo adicione  a seguinte linha:
RailsEnv MODO_DE_EXECUÇÃO
O MODO_DE_EXECUÇÃO deve ser subistituido por:

production  #Caso o aplicativo rails já será utilizado para produção
development #Caso o aplicativo ainda esteja em desenvolvimento

Agora faltam somente 2 passos para que sua aplicação rails possa funcionar perfeitamente.

Caso queira que o rails rode um subdiretorio do / do apache altere o arquivo sites-enabled/default do apache a seguinte linha dentro do virtualhosts:

RailsBaseURI /subdiretorio

E faça um link simbólico da pasta public da sua aplicação rails para a pasta / do apache em alguns casos ela fica no /var/www.
cd /pasta/do/root/do/apache
ln -s /pasta/da/sua/app/public subdiretorio

Salve o arquivo.
E finalizando, reinicie o apache com o comando:
sudo apache2ctl restart

E agora é só desenvolver suas aplicações em rails.

Agradeço pela visita, qualquer erro é só falar.