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:
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.
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: deployment, rubyonrails, tutorial



19 de agosto de 2008 às 10:27
Minha app esta na versão 1.2.6 , posso hospedá-la na Locaweb?
19 de agosto de 2008 às 11:18
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.
19 de agosto de 2008 às 20:58
[...] 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 [...]
3 de novembro de 2008 às 15:21
Criei um link simbólico, mas agora quero apagá-lo. Como faço?
3 de novembro de 2008 às 17:55
@Alexandre: se estiver conectado via SSH, faça “rm nome_do_link”. O comando “rm” é “remove” (apagar) em Linux.
4 de novembro de 2008 às 8:14
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
5 de novembro de 2008 às 15:36
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.
11 de novembro de 2008 às 12:06
[...] 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 [...]
17 de novembro de 2008 às 14:57
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.
17 de novembro de 2008 às 17:58
@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/
3 de dezembro de 2008 às 11:18
Bom dia, Obrigado, vou pesquisar a respeito.
6 de dezembro de 2008 às 15:38
[...] 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á [...]
8 de dezembro de 2008 às 13:00
[...] 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á [...]
8 de dezembro de 2008 às 18:39
@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
8 de dezembro de 2008 às 20:40
@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.
9 de dezembro de 2008 às 14:28
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
4 de fevereiro de 2009 às 15:03
@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!
6 de março de 2009 às 16:10
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.
3 de abril de 2009 às 16:50
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
8 de abril de 2009 às 7:05
@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.