E quando a hospedagem atual não satisfaz, ou então, não agüenta o tranco, e faz-se necessário migrar o blog para outro servidor? O que fazer? Recentemente, a Lu passou por este apuro, e como a própria relata, a mudança foi traumática. Ontem, migrei meu blog pessoal para outro servidor. No meu caso, a mudança foi tranqüila e rápida, sem contratempos, nem aborrecimento. Conforme havia prometido à Lu, este artigo ensinará como fazer esta migração de forma suave.
O primeiro passo é fazer backup de tudo. Na realidade, são dois grandes backups a serem feitos, a saber:
Os arquivos do blog não tem segredo: é só enviar para o novo servidor da mesma maneira que foi baixado do antigo, ou seja, via FTP. O banco de dados, que é o ponto crucial, veremos a seguir. Antes, uma explicaçãozinha sobre codificação.
O WordPress codifica as páginas e posts em UTF-8. Quando eu fazia sites “manualmente”, ou seja, sem sistemas dinâmicos, tal charset era sinônimo de dor de cabeça, pois ela ignora acentos e caracteres especiais, como a cedilha (ç). Minha codificação preferida, e que funcionava sem engasgos, era a ISO-8859-1. Curiosamente, o WordPress, no tocante aos posts e páginas, ou seja, ao que fica armazenado no banco de dados, aceita e interpreta corretamente caracteres especiais, e isso usando UTF-8. O mesmo não ocorre no tema, onde você precisa usar caracteres especiais, ou então configurar corretamente o editor de textos, para que acentos dispostos de maneira normal nos arquivos do tema apareçam corretamente. Ah, e nem tente mudar o charset; o resultado será uma salada pior ainda.
Ok, dito isto, chegamos ao “x” da questão: embora UTF-8 funcione bem no WordPress, o mesmo não vale para as demais ferramentas. E, assim, quando se restaura o backup no phpMyAdmin, por exemplo, no procedimento os caracteres acentuados são destruídos. Simples assim.
No HTML, há um recurso que burla esta limitação, chamado HTML Entities. Conforme explica muito bem este site, os entities “promovem um método de adicionar caracteres que não pode ser expressados em documentos ou são difíceis de serem teclados”. Trocando em miúdos, são códigos universais, precedidos pelo “e” comercial (&), e terminados com ponto-e-vírgula (;). Vale lembrar, também, que entities são case sensitive, ou seja, o fato um ser escrito em letras maiúsculas interfere diretamente no resultado.
O Henrique C. Pereira dá uma explicação mais aprofundada e técnica do assunto. No site da w3schools há uma página com todos os entities.
Voltando à migração. De posse do backup do banco de dados, descompacte-o. Ele estará no formato *.gz, o qual qualquer descompactador decente, como o WinRAR ou o 7-Zip, consegue fazer o trabalho. O arquivo descompactado terá extensão *.sql.
Agora, baixe e instale o Notepad++, e em seguida, abra nele o arquivo *.sql. Dependendo do tamanho do banco de dados, o computador poderá ficar lento, e sofrerá para abri-lo… Normal. O que faremos agora é substituir todos os caracteres acentuados por entities. Legal, não? Mas calma, pois não será um trabalho “cata milho”, ou seja, um por um. Isso seria desumano, palavra de quem já cometeu esta loucura há algum tempo. Vamos fazer de maneira automatizada.
O Notepad++ possui um recurso deveras interessante: pesquisa com substituição. Aperte as teclas Control + H, ou então vá ao menu Localizar, e entre em Substituir… Uma tela surgirá, com dois campos principais. Naquela lista da w3schools, localize a tabela ISO 8859-1 Character Entities.
O trabalho consiste em, um a um, substituir todos os caracteres especiais por entities. No primeiro campo, Localize, deve-se inserir o caracter acentuado; no segundo, Substituir por, vai o entity. Antes de executar a ação, marque a caixa de seleção Diferenciar maiúsculas de minúsculas. Feito isso, clique no botão Substituir todos, e aguarde. Olhe a imagem para ver como fica o caracter “á”:

Repita a operação com todos os caracteres especiais. Finalizado o serviço, salve as alterações.
Terminada a tarefa, abra o phpMyAdmin do seu novo servidor, crie um banco de dados, e restaure o arquivo *.sql recém-editado nele. Isso é bem simples, basta, após criar o banco de dados, selecioná-lo, e no menu do mesmo, ir em Importar. Lá, clique no botão Procurar…, selecione o banco de dados, e em seguida, clique no botão Executar. Ah sim, deixe o charset (Conjunto de caracteres do arquivo) em UTF-8.
Vale lembrar que a versão do phpMyAdmin que utilizo é a 2.8.2.4. Em versões anteriores ou mais novas, um ou outro detalhe pode ser diferente, mas o básico é o mesmo.
Backups restaurados, falta apenas um passo para a migração ser completa: alterar os endereços DNS do domínio. Se seu domínio for .br, a mudança é feita no Registro.br; se for internacional, aí varia, é no site onde o domínio foi comprado. Enfim, se foi você quem o registrou, deverá saber onde foi. Caso contrário, peça ajuda a quem registrou o domínio para ti.
Feita a alteração dos endereços, a propagação dos mesmos ao redor do mundo pode demorar até dois dias. Aguarde até lá, e curta o trabalho finalizado e bem feito ;) .
[Update - 20/02/2007, 12h07min] O Eduardo lembrou, através de um comentário, outro detalhe a ser observado em relação ao banco de dados do novo servidor: os dados (nome, usuário e senha). Se eles forem diferentes dos do antigo, certifique-se de editar o arquivo wp-config.php e, logo em seguida, enviá-lo para o novo servidor.
migrar, migração, servidor, wordpress, blog, mysql, banco de dados, phpmyadmin, importar, exportar, backup, restaurar, utf-8, entities, entity
Eu sempre usei codificação UTF-8 e para ter o sidebar e algumas páginas acentuadas corretamente, faço a edição pelo próprio painel do wp. Mas quando fui trocar de hospedagem também tive problemas com a codificação e pesquisando pela net, encontrei uma solução bem simples, foi só importar o banco de dados com o conjunto de caracteres “latin1″. =D
Muito bom! Excelente post.
Posted by Renato Bontempo
February 20th, 2007, às 12:13 pm. #.
Não sei se vale a pena comentar, quando migrei meu blog em WP de um servidor pro outro eu quebrei a cabeça para descobrir o porque que NENHUM link funcionava. Parecia que não encontrava os arquivos, daí que fui descobrir que tinha que mudar a estrutura do permalink para ele “reencontrar os caminhos”, se é que você me entende. Já vi várias pessoas ficarem descabeladas com esse “pequeno” detalhe. Desculpe minha ignorância se você falou disso aqui, demoro um pouco pra compreender alguns termos técnicos. Mas excelente post. É por essas e por outras que estou sempre por aqui. :P Kisses
Já mudei uns 3 blogs de servidor, quebrei um pouco a cabeça mas deu tudo certo. no meu caso tive que mudar no arquivo wp-config as configurações da base de dados, de resto fou suave!
Parabéns pelo post.
Recentemente eu passei por problemas com transferência, e acabei por não utilizar antigo bd, por problemas no mesmo.
Quase desisti de blogar.
Espero agora ficar mais atento a tudo isso.
Pois realmente essa experiência pode ser traumática.
abs
Posted by Paulo Villela
February 21st, 2007, às 9:32 am. #.
Cheguei a perguntar para o pessoal da Reticencias se fazer essa substituição resolveria o problema. Como disseram que não, nem tentei…
Isso funciona independentemente da codificação do backup?
E da próxima vez em que o blogueiro precisar migrar de servidor? O trabalho tem que ser refeito?
Ghedin,
As vezes acho que você lê pensamentos. Meu blog excedeu o limite de BW, e estava hoje mesmo migrando pro DreamHost, pra ter um pouquinho mais de espaço.
Enquanto estava abrindo o Google pra procurar como fazer essa tranferência, decidi abrir seu blog pra ver as novidades e me deparei com esse artigo.
Medo… muito medo …
Ps: Você nunca tentou usar o DreamWeaver não?
Rodrigo,
Backup é algo imprescendível, como vc mesmo disse.
Mas por favor, se não o fizermos via painel de adm do wordpress, o backup do bd feito pelo cpanel é a mesma coisa?
Estou preocupado com isso pois já tive problema com perda de dados e não quero passar por isso novamente.
abs
Posted by Paulo Villela
February 24th, 2007, às 6:41 pm. #.
Ghedin preciso de um conselho urgente. Fui migrar para o Dreamhost, fiz o upload dos arquivos, backup do database, etc..
Mas não consigo de jeito nenhum configurar o wp_config.php. Parece que no dreamhost é diferente. Ao invés do localhost, tem que colocar “mysql.seudominio.com”. Mas não está dando certo, mesmo com a instalação automática do Dreamhost.
Sabe o que acontece comigo? Abraços e obrigado.
[…] tive problema com os caracteres especiais, como “ç”, “á”, “é”, etc… Graças a esse tutorial isso também foi […]
Posted by Oito passos para o conhecimento » Mais explicações e novidades
February 26th, 2007, às 1:29 am. #.
Um pouco tarde para comentar, mas estou começando na área dos blog não a muito tempo.
Mas gostaria de saber se a exportação do banco de dados pode ser feita pelo próprio PHPMYADMIN pois tem a opção exportar…
Abraços
Posted by Felipe'Corvo
March 5th, 2007, às 8:34 pm. #.
Muito bom, tudo explicadinho. Finalmente eu consegui migrar, deu uma dorzinha de cabeça mas nada que não desse pra resolver. Eu assinei a hospedagem e comprei o domínio, aí coloquei a base em modo utf-8, o caracteres não foram reconhecidos, depois fiz o mesmo processo e escolhi latin1 como a tamara disse acima e funcionou comigo. É isto pessoal, agora o meu blog está no ar e vou lá ajeitar algumas coisas que faltam. Obrigado Rodrigo pela explicação. Abraços
Gostaria de Saber como faço para migrar de Wordpress.com para servidor linux.
Grato.
O post está me ajudando muito, pois estou migrando para DreamHost. Diminuiu a insegurança…
[…] tomar a decisão de enfim migrar, sugiro ler Como Migrar Seu Blog Para Outro Servidor e evite dores de […]
Posted by novasinapse.com » Tutorial - Autoria em Blogs. Informação Digital Qualificada?
April 26th, 2007, às 6:59 pm. #.
A pouco tempo atrás tive que mudar de servidor. Foi um sofrimento só pois eu não sabia muito bem o que fazer.
Posted by Erivelton L.
May 6th, 2007, às 8:06 am. #.
Eu mudei meu servidor ontém, e não tive problemas com acentuação. Agora estou correndo atrás de algum tutorial que possa me ajudar numa missão que pra mim está muito dificil: Direcionar 301 de meus endereços antigos.
Posted by Fred Banionis
June 28th, 2007, às 8:54 am. #.
Aeee, consegui, foi tranquilo. A parte mais chata foi trocar os caracteres.
Duas coisas:
a) quem tem o Dreamweaver não precisa baixar o notpad . Com o CTRL F você também tem a tela de pesquisar e substituir.
b) se o endereço mudou, também procure e substitua o endereço antigo para o novo.
(li os comments dessa página e ninguém falou nada disso, então…)
Mas muuuito obrigada! :D
Abraço!
@ Marta
Obrigado pelos complementos, Marta!
[]’s!
Posted by Rodrigo P. Ghedin
August 15th, 2007, às 11:15 am. #.
[…] do WordPress é a desconfiguração dos caracteres acentuados que é muito simples de resolver, o Rodrigo já tinha falado sobre o assunto mas achei muito complicado, tem uma maneira mais […]
Posted by Bagulhos » Blog Archive » Enfim, WordPress 2.3
September 29th, 2007, às 10:32 pm. #.
muito legal
Posted by carlos antonio
October 31st, 2007, às 6:40 am. #.
Migrei o meu blog de servidor, porém ao importar o banco de dados sql, onde tem letras acentuadas, o texto fica cortado a partir dessa letra. tipo “Gráficos” vira “Gr” e assim por diante. Alguém poderia me ajudar?
Posted by Inexistent Man
March 3rd, 2008, às 1:51 am. #.
Como não sei se o pingback foi, estou aqui para comentar que utilizei um pequeno pedacinho do seu texto na criação do meu tutorial. =) fique a vontade para ve-lo e se quiser acrescentar algo é bem vindo.
Posted by Paulinho Macedo
April 16th, 2008, às 4:53 am. #.
Olá, Rodrigo, muito obrigado pela dica. Eu tenho uma instalação local do WordPress, e tive que reinstalar o Windows, e não conseguia recuperar os arquivos de backup por causa dos caracteres acentuados. O seu post salvou dezenas de posts inúteis do desaparecimento no ciberespaço. Muito obrigado, novamente! Abs,
JB
Posted by João Brito
September 14th, 2008, às 6:43 pm. #.
BlogAjuda © 2007.
Simple Grey theme developed by Rodrigo P. Ghedin.