Fiquei surpreso com a dificuldade que é configurar um ambiente Ruby on Rails no Mac. Digo um ambiente completo, com Apache + Passenger e o grande obstáculo dessa tarefa: o Mamp. É que prefiro fazer tudo via Mamp, para não interferir no Apache do sistema.
No final, rolou um glorioso Fail. Tive que apelar para o Apache do Mac mesmo. Vou documentar pois vira e mexe preciso consultar esses procedimentos.
Para isso, tive que atualizar o Mamp. Estava com receio de quebrar algo no processo, já que meu Mamp está todo customizado. Mas como já tinha documentado as principais mudanças [Drupal no Mac], foi suave.
Tive que instalar o XCode também, que vem no DVD do Snow Leopard. Essa etapa funcionou que é uma beleza, me deixando saudosista dos tempos em que compilava kernel customizado no Linux.
Agora que o Ruby já conversa com o MySQL, falta o Apache do Mamp. Essa não é uma etapa obrigatória, sendo que o desenvolvimento local pode ser feito com os servidores web do Rails (Mongrel ou Webrick). Mas tive que configurar o Rails no Apache pois alguns hosts (como a Dreamhost), devido a alguma configuração específica, simplesmente não rodam uma aplicação que, localmente, está OK.
Para já ir desenvolvendo na mesma configuração do servidor onde ficará a aplicação é preciso usar o Apache/Passenger localmente.
Módulo não compila
Tentei me basear nessa dica: Installing passenger on Apache that bundled with MAMP. Ela não funciona pois ao rodar o passenger-install-apache2-module, é preciso especificar os caminhos específicos do Apache Mamp, coisa que não é informada aí.
Mas mesmo fazendo isso, não funciona. A compilação pára em certo momento, reclamando de alguns arquivos não encontrados. Gastei várias horas tentando compilar o Passenger de umas dez maneiras diferentes. Pelo que entendi, o problema é que — mesmo usando os arquivos-fonte do Mamp — faltam arquivos para a compilação, como o config_vars.mk.
Desisti. Como a dica acima funciona se compilarmos o Passenger com o Apache do Snow Leopard, é assim que estou usando, apesar de ser uma gambiarra horrível usar o MySQL do Mamp com o Apache do Snow Leo, ainda mais porque meu Mamp está configurado nas mesmas portas do Mac.
O que vou fazer assim que tiver um tempo maior é abandonar o Mamp e instalar MySQL e PHP tudo na mão mesmo.
Dreamhost e Drupal
Por falar em Dreamhost, há um mês mais ou menos ficou muito difícil lá para quem usa Drupal. Trabalho com um site que ficou praticamente inutilizável em horário comercial (PDT, nos EUA). Pesquisei bastante, tentando algum jeito de contornar o problema, mas nada.
Por fim, a própria Dreamhost admitiu que, por usar servidores MySQL separados, há uma latência que prejudica muito CMSs como o Drupal, que realizam dezenas de queries por pageview.
Migrei para Bluehost e agora dá para respirar aliviado: uuuuffaaaaa! Tá tudo de volta ao normal.
Rails com Mamp
Fiquei surpreso com a dificuldade que é configurar um ambiente Ruby on Rails no Mac. Digo um ambiente completo, com Apache + Passenger e o grande obstáculo dessa tarefa: o Mamp. É que prefiro fazer tudo via Mamp, para não interferir no Apache do sistema.
No final, rolou um glorioso Fail. Tive que apelar para o Apache do Mac mesmo. Vou documentar pois vira e mexe preciso consultar esses procedimentos.
Comecei com essa dica: Using Ruby MySQL Gem with MAMP 1.8.x on Snow Leopard.
Para isso, tive que atualizar o Mamp. Estava com receio de quebrar algo no processo, já que meu Mamp está todo customizado. Mas como já tinha documentado as principais mudanças [Drupal no Mac], foi suave.
Tive que instalar o XCode também, que vem no DVD do Snow Leopard. Essa etapa funcionou que é uma beleza, me deixando saudosista dos tempos em que compilava kernel customizado no Linux.
Agora que o Ruby já conversa com o MySQL, falta o Apache do Mamp. Essa não é uma etapa obrigatória, sendo que o desenvolvimento local pode ser feito com os servidores web do Rails (Mongrel ou Webrick). Mas tive que configurar o Rails no Apache pois alguns hosts (como a Dreamhost), devido a alguma configuração específica, simplesmente não rodam uma aplicação que, localmente, está OK.
Para já ir desenvolvendo na mesma configuração do servidor onde ficará a aplicação é preciso usar o Apache/Passenger localmente.
Módulo não compila
Tentei me basear nessa dica: Installing passenger on Apache that bundled with MAMP. Ela não funciona pois ao rodar o passenger-install-apache2-module, é preciso especificar os caminhos específicos do Apache Mamp, coisa que não é informada aí.
Mas mesmo fazendo isso, não funciona. A compilação pára em certo momento, reclamando de alguns arquivos não encontrados. Gastei várias horas tentando compilar o Passenger de umas dez maneiras diferentes. Pelo que entendi, o problema é que — mesmo usando os arquivos-fonte do Mamp — faltam arquivos para a compilação, como o config_vars.mk.
Desisti. Como a dica acima funciona se compilarmos o Passenger com o Apache do Snow Leopard, é assim que estou usando, apesar de ser uma gambiarra horrível usar o MySQL do Mamp com o Apache do Snow Leo, ainda mais porque meu Mamp está configurado nas mesmas portas do Mac.
O que vou fazer assim que tiver um tempo maior é abandonar o Mamp e instalar MySQL e PHP tudo na mão mesmo.
Dreamhost e Drupal
Por falar em Dreamhost, há um mês mais ou menos ficou muito difícil lá para quem usa Drupal. Trabalho com um site que ficou praticamente inutilizável em horário comercial (PDT, nos EUA). Pesquisei bastante, tentando algum jeito de contornar o problema, mas nada.
Por fim, a própria Dreamhost admitiu que, por usar servidores MySQL separados, há uma latência que prejudica muito CMSs como o Drupal, que realizam dezenas de queries por pageview.
Migrei para Bluehost e agora dá para respirar aliviado: uuuuffaaaaa! Tá tudo de volta ao normal.