Estes dias estava instalando na empresa onde trabalho um servidor para desenvolvimento e testes, então ao instalar o Webmin (Gerenciador web de servidores), vi a possibilidade de criar um modulo que gerencia-se a criação, edição e remoção de RailsBaseURI e RackBaseURI para o passenger (já estava cansado de adicionar editando diretamente o arquivo), abaixo farei uma explicação de como instalá-lo.
Primeiramente desenvolvi o modulo visando apenas trabalhar com um único virtual host apache, provavelmente mais tarde criarei um que possibilite vários, mas isso é só no futuro.
Como pré requisitos para o modulo tem-se, ter o apache2 instalado, possuir o passenger já funcionando em sua maquina (caso não tenha instalado ainda veja este tutorial), e obviamente ter o webmin instalado.
Crie um o arquivo vazio chamado rails.conf na pasta /etc/apache2 , seguindo o comando abaixo.
sudo touch /etc/apache2/rails.conf
Adicione então ao seu virtualhost a seguinte linha:
Include /etc/apache2/rails.conf
Assim fazendo com que sejam rodados as configurações presentes no arquivo.
Então baixe no link abaixo o arquivo com o módulo.
passenger.wbm.gz.doc (Como o wordpress não permite postar outras extensões renomeie o arquivo para passenger.wbm.gz )
Então abra o webmin acesse Webmin Configuration >> Webmin Modules selecione From uploaded file e encontre o arquivo e clique em install module.
Pronto agora no menu ao lado na categoria server irá aparecer passenger.
Qualquer duvida me poste um comentário.
Obrigado
Arquivo da categoria ‘Linux’

Plugin para Passenger no Webmin
07-08-2009
Problemas ao rodar o rails 2.2 no passenger
22-04-2009Uma dica rápida, mas que pode ajudar muito, apartir da versão 2.2.0 do rails foi adicionado uma configuração que especifica a pasta padrão da qual é rodada a aplicação, ajudando assim a se ter várias aplicações em um unico domínio.
Por padrão a aplicação rails pensa que está no / do dominio, gerando o seguinte erro caso não esteja.
Exemplificando ao acessar http://www.meuservidor.com.br/minha_aplicacao .
Routing Error
No route matches "/minha_aplicacao" with {:method=>:get}
Então para resolver isto é necessário apenas adicionar a linha abaixo ao envoriment.rb trocando o “/minha_aplicacao” pela pasta onde ela esta.
config.action_controller.relative_url_root="/minha_aplicacao"
Espero ter ajudado.

Passenger: Error message: No such file or directory – /nonexistent
18-12-2008Ontem ao instalar o sistema no servidor de um cliente, me deparei com o seguinte erro :
Error message:
No such file or directory - /nonexistent
Já tinha visto este erro, mas não sabia como resolvê-lo e nem porque ele acontecia.
Ele existe pois alguns serviços do pessenger estavam sendo rodados por um usuário chamado nobody, e ao procurar a pasta “home” deste usuário, o ruby recebia “/nonexistent” como sendo sua pasta.
Update: Existe uma forma melhor de resolver isto, do que a apresentada abaixo, veja ela Aqui. Obrigado Walter.
A solução encontrada pra esse erro foi criar a pasta /nonexistent com o comando com permissões de super usuário.
# mkdir /nonexistent
Esta foi a solução mais rápida encontrada, para ser resolvido o problema, mas acho que deve existir uma forma melhor de corrigi-lo.
Espero ter ajudado.

Problemas com o ruby + openssl
28-10-2008Hoje fui testar os passos que comentei em outro post no ubuntu 8.10 , pra verificar se estavam corretos.
Pra não ficar na monotonia resolvi instalar o ruby do source, como eu já sabia que poderia ter problemas na hora de instalar o rubygems com o zlib instalei os pacotes zlib1g e zlib1g-dev, como citado na atualização daquele post.
Continuei feliz da vida instalando, funcionou direitinho o ruby , rubygems e o rails, e quando fui instalar o passenger o gem instalou corretamente mas tive uma feliz surpresa na hora de rodar o comando : sudo passenger-install-apache2-module
Apareceu então a seguinte tela:* GNU C++ compiler… found at /usr/bin/g++
* Ruby development headers… found
* OpenSSL support for Ruby… not found
* RubyGems… found
* Rake… found at /usr/local/bin/rake
* Apache 2… found at /usr/sbin/apache2
* Apache 2 development headers… found at /usr/bin/apxs2
* Apache Portable Runtime (APR) development headers… found at /usr/bin/apr-1-config
* fastthread… found
* rack… found
Pesquisei um pouco e encontrei em alguns fóruns a dica de instalar os pacotes: libopenssl-ruby1.8, openssl, libssl-dev e libssl0.9.8 , instalei os pacotes e nada.
Lembrei então de que as versões >= 1.8.7 ficam na pasta /usr/local/lib e não na /usr/lib que é a padrão da versão 1.8.6 que está como instável nos repositórios do ubuntu.
Então não teve jeito, desinstalei o ruby, apagando mesmo a pasta /usr/local/lib/ruby e na hora de instalar, adicionei o seguinte:
./configure --with-openssl-dir=/usr/lib
make
sudo make install
Após isso não tive mais problemas, instalei o rubygems, o rails e o passenger.
Espero que isso ajude.
Agradeço pelas visitas… qualquer dúvida é só deixar um comentário.
Obrigado

Caminho padrão do Ruby
06-10-2008Estarei disponibilizando aqui as pastas onde, por padrão, está instalado o ruby, e o rubygems:
Ubuntu 8.04:
- Executável:
/usr/bin/ruby1.8 - Arquivos:
/usr/lib/ruby/ - gem:
/usr/lib/ruby/gems/
Ubuntu 8.04:
- Executável:
/usr/bin/ruby1.8 - Arquivos:
/usr/local/lib/ruby/ - gem:
/usr/local/lib/ruby/gems/
Em breve mais…
Caso você tenha o caminho do ruby no seu S.O. favorito, deixe no comentário e estarei adicionando aqui.
Obrigado

Tutorial de instalação do Rails com Phusion Passenger (mod_rails) para Ubuntu
28-08-2008Mais 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.
