Como colocar minhas aplicações Rails na Locaweb?

Acabamos de lançar o suporte oficial à hospedagem compartilhada Linux com Ruby on Rails. A primeira grande pergunta para os novos clientes deve ser: ”E agora, como coloco minhas aplicações em produção?”

Partindo do pressuposto que você já contratou uma hospedagem compartilhada Linux, transfira suas aplicações para a pasta ”rails_app”. Isso pode ser feito via FTP, SFTP ou SCP, o que lhe for mais conveniente. Por exemplo digamos que você tenha as aplicações “site” e “loja”, elas ficariam assim:

~/rails_app/site
~/rails_app/loja

Acesse sua conta via SSH (se for no Windows, use o programa Putty para isso). Todas as contas Linux tem SSH por padrão.

Crie links simbólicos das pastas ’public’ de suas aplicações para dentro da pasta ’public_html’: 

ln -s ~/rails_app/site/public ~/public_html/site
ln -s ~/rails_app/loja/public ~/public_html/loja

Finalmente, acesse o Gerenciador de Domínio através do Painel da Locaweb:

Gerenciador de Domínios

Domínios cadastrados

Através do Gerenciador de Domínio você pode configurar seu Site Principal, Site Adicional, Apontamentos e Redirecionamentos. Você pode cadastrar seu domínio, por exemplo, www.minhaloja.com.br e mapeá-la diretamente para /public_html/site e loja.minhaloja.com.br para /public_html/loja.

Alteração da Raíz do Site

Feita a alteração da raíz do seu site (seja Site Principal ou Site Adicional), será necessário aguardar no máximo 2 horas para que o Apache recarregue sua nova configuração. Se você acabou de registrar seu domínio também existe o tempo de propagação do DNS que pode variar, mas costuma ser rápido. 

Com esta organização você pode colocar uma ou mais aplicações na mesma conta. Claro, infelizmente alguma coisas não rodarão em ambiente compartilhado, como a gem Ferret ou outras que dependam de daemons (servidores) separados. Para esses casos a solução é um ambiente virtual/dedicado. Aguardem mais novidades nessa área, muito em breve teremos mais surpresas!

Dica importante: o Rails antes da versão 2.1 criava um arquivo public/.htaccess. Ele pode ser incompatível com a configuração do Passenger, portanto não se esqueça de apagá-lo para sua aplicação funcionar corretamente. Ele era necessário quando você queria subir a aplicação com FastCGI, mas o Passenger é muito melhor que FastCGI agora.

Outro detalhe: se quiser fazer alterações no seu site que já foi instalado como mostrei acima, não basta apenas sobrescrever os arquivos do seu projeto Rails. Isso porque o Passenger mantém instâncias persistentes em memória para garantir performance.

Para que suas alterações reflitam no seu site, é necessário reiniciar esses Rails. Isso é feito simplesmente criando um arquivo texto vazio chamado restart.txt. Por exemplo, se quiser reiniciar o Rails da loja, faça assim:

touch ~/rails_app/loja/tmp/restart.txt

Pronto, basta reiniciar o browser e tudo estará atualizado corretamente!

Tags: , ,

21 respostas to “Como colocar minhas aplicações Rails na Locaweb?”

  1. Arthur Martins Says:

    Minha app esta na versão 1.2.6 , posso hospedá-la na Locaweb?

  2. AkitaOnRails Says:

    Sim, nós temos as gems da versão 1.2.6 instalada. Você mesmo pode verificar todas as gems instaladas, basta acessar sua conta via SSH e de lá usar o comando “gem list” e ele trará todas as centenas de gems já disponíveis. E sempre existe a possibilidade de você “congelar” ou “vendorizar” as gems do Rails dentro da sua aplicação. Basta, de dentro do seu projeto, usar o comando “rake rails:freeze:gems” e aí o Rails ficará contido dentro de sua aplicação.

  3. Produtos Locaweb » Blog Archive » Instalação fácil de uma aplicação Rails - Parte 1 Says:

    [...] domínio (ex. railsdemo.tecnologia.ws) para a pasta na sua hospedagem (ex. /public_html/demo). Veja neste outro arquivo para mais detalhes sobre o Painel de [...]

  4. Alexandre Says:

    Criei um link simbólico, mas agora quero apagá-lo. Como faço?

  5. AkitaOnRails Says:

    @Alexandre: se estiver conectado via SSH, faça “rm nome_do_link”. O comando “rm” é “remove” (apagar) em Linux.

  6. Alexandre Says:

    Obrigado, Akita. Pode me dar mais um help? Segui todos os passos para instalação do Redmine na locaweb. A aplicação está dentro da pasta rails_app/redmine.

    No database.yml coloquei:

    production:
    adapter: mysql
    database: entreamigos11
    host: 200.234.202.119
    username: entreamigos11
    password: password
    encoding: utf8

    Mas quando rodo via SSH o comando rake db:migrate RAILS_ENV=”production” ele dá a seguinte mensagem: production database is not configured

    Quando acesso via browser http://www.redmine.entreamigos.org.br/ também dá erro na base de dados.

    Já procurei ajuda da locaweb e já pesquisei na internet, mas não consigo achar a solução.

    Obrigado

  7. Davi Says:

    Boa tarde, fiz tudo como descrito no tutorial, porém quando acesso minha aplicação recebo um Index Of como resultado, gostaria de saber do que pode ser isso.

  8. Produtos Locaweb » Blog Archive » Suporte a Merb 1.0 na Hospedagem Compartilhada Linux Says:

    [...] Locaweb suporta todos os principais frameworks open source, em especial os de Ruby. Além do Ruby on Rails agora temos também o suporte a [...]

  9. Davi Says:

    Gostaria de saber, se é possivel separar os controllers em pastas, por exemplo controllers / administrador, controllers / publico, somente separar os controllers; tentei fazer isso e recebi um belo erro rs.

  10. AkitaOnRails Says:

    @Davi sim, uma das formas são “namespaces”. Recomendo pesquisar a respeito. Aqui vai um link: http://peat.wordpress.com/2006/06/30/watch-your-namespace/

  11. Davi Says:

    Bom dia, Obrigado, vou pesquisar a respeito.

  12. Produtos Locaweb » Blog Archive » Hospedagens Linux: Tudo novo desde Agosto! Says:

    [...] que esse é o que mais apareceu, mas suportamos Ruby on Rails e Merb via o módulo Phusion Passenger. Tudo que você precisa para subir seu website em Ruby está [...]

  13. Blog Oficial da Locaweb » Blog Archive » Hospedagens Linux: tudo novo desde agosto! Says:

    [...] Acho que esse é o que mais apareceu, mas suportamos Ruby on Rails e Merb via o módulo Phusion Passenger. Tudo que você precisa para subir seu website em Ruby está [...]

  14. miguelbaldi Says:

    @akitaonrails, estou tentando rodar a versão estável do redmine (0.7.3 (2008-07-06)) na locaweb e não consigo. Na verdade a versão requerida do rails seria a 2.0.2, mas tentei congelar para essa versão e não rola. Tentei de tudo, como colocar o rails 2.0.2 na pasta vendors e tal, mas daí dá um erro de ruby (superclass must be a Class (Module given)). Tentei usar outra versão do redmine (trunk), que usa rails 2.1.2, coloquei no vendors essa versão e daí ocorre outro erro de ruby: undefined method `[]‘ for :engines:Symbol. Você poderia me dar um help? Valeu Akita

  15. AkitaOnRails Says:

    @miguelbaldi muito simples. Edite seu arquivo config/environment.rb e onde está RAILS_GEM_VERSION mude de 2.1.2 para 2.1.1. Nós sempre vamos manter as gems atualizadas, mas na ocasião de não estar, uma diferença de 0.0.1 não tem problema, então por enquanto faça assim. Eu acabei de fazer isso e já funcionou na minha conta. Assim que atualizarmos as gems, você pode mudar essa mesma linha e tudo vai funcionar.

  16. miguelbaldi Says:

    Akita, obrigado pela ajuda, agora funcionou! Apenas algumas coisas quando executadas no server não estão rolando. Como o console do rails e a task de carregar as configs default do redmine. Sempre retorna um erro do mysql, no console diz que não encontra o socket, e no caso da task diz que não consegue alocar memória para o mysql. Valeu pela atenção Akita!! Abraço

  17. Felipe Says:

    @akitaonrails, estou tentando instalar a versão estável do redmine (0.8.x) na locaweb e não consigo. Estou tendo o seguinte erro:

    ruby script/server -e production
    => Booting Mongrel (use ’script/server webrick’ to force WEBrick)
    => Rails 2.1.1 application starting on http://0.0.0.0:3000
    => Call with -d to detach
    => Ctrl-C to shutdown server
    ** Starting Mongrel listening at 0.0.0.0:3000
    ** Starting Rails with production environment…
    ** Rails loaded.
    ** Loading any Rails specific GemPlugins
    /usr/lib/ruby/site_ruby/1.8/rubygems/version.rb:25: [BUG] Segmentation fault
    ruby 1.8.6 (2008-08-08) [i386-linux]

    Aborted

    poderia me ajudar não conheço muito de ruby!

  18. Wesley Says:

    Akita e Pessoal,

    Alguem já conseguiu colocar o redmine na locaweb???

    Segui os passos descritos e nao entra de modo algum… deve ter alguma manha pra fazer isso

    Quem puder ajudar agradeço.

  19. Alexandre da Silva Says:

    Olá, Vi que no servidor existem as gems do starling, ferret etc instaladas já li que o ferret não está disponível, mas por acaso o strarling está?
    seria bem interessante ter um servidor starling rodando para o pessoal rodar as tarefas de envio de email por exemplo

    att,
    Alexandre

  20. AkitaOnRails Says:

    @Alexandre na verdade não, na hospedagem compartilhada não se pode ter daemons extras rodando. Portanto nenhuma gem que depende de coisas como memcached, sphinx, solr, etc vai funcionar.

  21. Akita Says:

    Akita…

    Produtos Locaweb ” Blog Archive ” Como colocar minhas … was a very useful post….

Deixe um comentário