Migração do meu site: SourceForge → DreamHost

O fato

Meu site, que estava há 10 anos hospedado no SourceForge, foi migrado para o DreamHost em 15/02/2011.

A história

Meu site foi criado em 1999 e desde o início ele ficava hospedado nos servidores da Conectiva, a empresa onde eu trabalhava. Cerca de dois anos depois, pelo que me lembro, alguma política interna mudou e decidiram suspender os sites pessoais dos funcionários. Meu site ficou desabrigado.

Naquela época, por motivos que hoje não me fazem sentido, eu considerava errado e imoral pagar por softwares ou qualquer serviço digital, tipo hospedagem de sites. Então procurei uma alternativa gratuita que tivesse suporte ao rsync, que eu já estava acostumado.

Sabe como é, eu era jovem, linuxeiro e achava que dentro do computador tudo deveria ser FREE, no sentido de livre e de gratuito. Hoje compro softwares (proprietários cara!!!) para o Mac e o iOS e sou feliz. É, pode falar: sou um vendido :)

Em 25/09/2001 registrei o projeto verde666 no SourceForge para poder hospedar meu site pessoal. O SourceForge é um site feito para hospedar somente projetos de software com código aberto/livre, e meu site, é claro, não se encaixava neste escopo. Porém, na época as regras não eram tão rígidas, e como eu também disponibilizava alguns softwares livres dentro de meu site, eles aprovaram.

E assim fiquei “de favor” lá no SourceForge durante uma década. Com o tempo as regras deles foram endurecendo para evitar abusos, e ao mesmo tempo meu site foi crescendo em popularidade e visitas, então sempre tive medo que um dia me chutassem de lá por não estar dentro do perfil. Mesmo temendo, a inércia imperou até 2011.

O DreamHost entrou na história em 13/07/2010, quando abri uma conta lá pois queria hospedar um blog para a Mog. Gostei muito do serviço deles, paguei o plano anual e aos poucos fui migrando todos os meus sites para lá também: codare, coisinha, funcoeszz, piazinho, shellscript e txt2tags, agora tá todo mundo no mesmo servidor.

Satisfeito com o novo provedor, decidi migrar também o mastodonte, e assim, após 10 anos de excelentes serviços prestados pelo SourceForge (que recomendo muitíssimo), hoje tenho casa própria e não tenho mais medo de ser chutado :)

Esta migração também foi necessária para eu poder colocar em prática meus planos de integração do site com o blog, para torná-los uma coisa só, mas sobre isso eu falo em um texto futuro.

A nerdice

Migrar um site pode ser simples ou complicado, depende do que exatamente consiste este site e quais são os pré-requisitos para que tudo funcione.

  • São só alguns arquivos HTML estáticos?
  • Tem arquivos PHP também?
  • É um WordPress?
  • Você usa banco de dados?
  • Ele depende de serviços configurados no servidor?
  • É preciso ter quais linguagens de programação à disposição?
  • Você atualiza o site via FTP, scp ou rsync?
  • O servidor novo suporta tudo isso?

No meu caso, felizmente estou no lado simples da balança. O conteúdo do site é todo estático, com arquivos TXT e HTML e a atualização é feita com o rsync. Os requisitos são mínimos (nada de cronjob, SSI, CGI) e preciso de PHP e MySQL para fazer funcionar o cadastro de leitores do livro.

Como curiosidade, aqui estão alguns dados sobre o site, que pesquei antes da migração:

  • 114MB de tamanho total
  • 369 pastas
  • 3.746 arquivos
    • 2.148 imagens
    • 21 mp3
    • 0 vídeos
    • 1.086 .html
    • 120 .txt

Para chegar nestes números, os comandos du, find e wc foram meus amigos:

# tamanho
du -hs /a/www

# pastas
find /a/www -type d | wc -l

# arquivos
find /a/www -type f | wc -l

# arquivos .html
find /a/www -type f -iname "*.html" | wc -l

# imagens (PNG, JPG, GIF)
find /a/www -type f -iname "*.png" -or -iname "*.jpg" -or -iname "*.gif" | wc -l

O processo de migração não foi complicado, basicamente foi só copiar tudo para o servidor novo:

  1. Fiz um rsync da minha máquina para o servidor novo, copiando todos os arquivos do site.
  2. Comparei a listagem de arquivos do servidor novo e do antigo, para ter certeza que eram iguais. Não eram :)
  3. Fiz ajustes no script de rsync e copiei/apaguei alguns arquivos aqui e ali até ficar tudo 100%.
  4. Usando o phpMyAdmin, migrei os bancos de dados: exportei no servidor antigo e importei no novo.
  5. Atualizei host/usuário/senha no arquivo PHP que acessa esse banco.
  6. Mudei o DNS do domínio para apontar para o novo servidor.
  7. Testei o site todo.

A falha no item 2 aconteceu porque durante os anos, alterei as opções que usava no rsync e também adicionei/removi muita coisa no conteúdo dos arquivos usados nas opções --include-from e --exclude-from. Como agravante, também fiz uso intensivo de links simbólicos e as regras de inclusão/exclusão de arquivos do rsync variam conforme a área do site (em algumas eu também subo para o servidor os arquivos-fontes .t2t do txt2tags). Com isso, foram sobrando alguns lixos no servidor antigo, que eu nem sabia que ainda estavam lá.

Eu gostaria de poder dizer que a migração foi tranquila, mas na realidade me tomou 10 horas de trabalho porque, claro, aconteceram alguns imprevistos. Além de alguns detalhes pequenos e fáceis de arrumar, o arquivo .htaccess foi um que deu pau. Isso porque as versões do Apache usado no SourceForge e no DreamHost são diferentes, assim como sua configuração padrão.

  • Antes eu precisava usar a opção Options Indexes, e agora ela dava erro. Bastou removê-la.
  • Antes arquivos .py eram tratados como arquivos de texto normal, agora são executados como programas. Precisei usar um RemoveHandler cgi-script .py para impedir essa execução. Se bem que poder executar programas em Python dentro do site me atiçou as ideias :)
  • Agora eu podia usar URLs relativas nos redirecionamentos (opção Redirect) que apontavam para o próprio site, tornando o arquivo .htaccess mais diet.

O SourceForge era mais conservador e demorava para atualizar os sistemas que rodavam em seus servidores. O DreamHost parece mais moderninho e senti (mas não medi) que o site ficou mais rápido. Para quem estiver curioso, o sistema do servidor lá é:

Linux 2.6.32.8-grsec-2.1.14-modsign-xeon-64 #2 SMP Sat Mar 13 00:42:43 PST 2010 x86_64 GNU/Linux

Olhei, olhei e não entendi que Linux é esse :)

— EOF —

Gostou desse texto? Aqui tem mais.