Como migrar sites em WordPress

Este post faz parte de um conjunto de artigos organizados em um Curso de WordPress. Acesse o link para outros conteúdos.

Esta é uma das dúvidas mais comuns para quem está começando no WordPress. Se você deseja migrar seu site com o auxílio de um plugin, o que normalmente se usa é o Duplicator: ele gera um pacote na origem e te ajuda a instalar no destino. Se prefere fazer algo mais controlado é só seguir o tutorial abaixo.

Como mover o site em wordpress do localhost (ou homologação, desenvolvimento, da sua máquina) para a produção sem plugins?

Normalmente a migração de sites em WordPress – de sites em geral, diga-se de passagem – é divida em duas partes: arquivos e banco de dados.

Como migrar os arquivos

Geralmente basta baixar por FTP os arquivos de um ambiente e subir no outro. Alguns plugins guardam em texto configurações de endereço, então faça uma busca por todos os arquivos, tanto pelo caminho real (dentro dos diretórios do servidor) quanto pela  url e, se for o caso, faça as devidas trocas.
Algumas boas dicas aqui são: já alterar o wp-config.php e o .htaccess antes de subir os arquivos, assim você não precisa mexer nisso novamente depois, e colocar logo a pasta Search-Replace-DB-master na raíz do WordPress (mesmo lugar onde normalmente estão a wp-admin, wp-include, wp-content), que falaremos a seguir. Depois de subir os arquivos não se esqueça de alterar o permissionamento da pasta wp-content/uploads.

Como migrar o banco de dados do WordPress

De longe a parte mais complicada. Muitos componentes do WordPress guardam em BD o caminho do ambiente atual (textos de posts e widgets, configurações de plugins e etc.) e é preciso uma forma de trocar todos ao mesmo tempo para que não haja nenhum link quebrado perdido pelo site.

O que NÃO resolve

Fazer um dump do banco e fazer um search/replace no texto do sql. Isso dá errado porque o WordPress guarda muita coisa de modo serializado, então se a quantidade de caracteres de uma url for diferente da outra os dados estão corrompidos e vai ocorrer uma pane geral no site.

O que QUASE resolve

A estratégia mais comum, razoavelmente eficaz mas muito pouco eficiente, é migrar o banco de dados sem mexer em nada, alterar pelo phpmyadmin só os valores de home e siteurl na tabela wp_options e fazer um replace por sql no texto dos posts. Depois fazer uma busca geral no site para ver o que não está funcionando e resolver (com certeza a pior parte do processo). No fim das contas o desenvolvedor percebe que deixou vários detalhes pra trás e tem que ficar lidando com constantes solicitações de pequenas mudanças.

O que RESOLVE

O que nós precisamos é de um search and replace geral no banco que mantenha a integridade dos dados serializados. Comecei a escrever um script que fizesse isso, mas acabei encontrando um pronto, o Search Replace DB. Ele também funciona para sites que não sejam em wordpress, mas para esses casos existe uma facilidade especial: o script já preenche os dados de acesso ao banco de dados, basta colocar a pasta na mesma que o wp-config.php. Depois você seleciona em quais tabelas deseja fazer a troca – todas, por que não? – e está pronto.

Importante: depois de usar não se esqueça de apagar a pasta e seus arquivos do ambiente de produção. Se ele for descoberto pela pessoa errada pode causar um transtorno inacreditável.

Importante 2: se você preferir não usar o script na mesma pasta que o wp-config.php e perceber que as coisas não estão indo como deveriam, talvez você precise rever o campo charset, preenchendo com o valor utf8.

Segue então um pequeno resumo para servir de guia nas migrações.

Checklist para migração de site em WordPress

  1. Baixar por FTP os arquivos do ambiente atual
  2. Pesquisar nestes arquivos referências para o site atual, tanto urls quanto caminhos reais
  3. Fazer um dump da (exportar a) base de dados
  4. Se ainda não existir, criar no ambiente destino a base de dados do site
  5. Alterar o wp-config.php (a versão que está na sua máquina, claro) com os dados de conexão do banco de dados do ambiente destino
  6. Alterar o .htaccess para o endereço do novo ambiente
  7. Copiar uma versão do searchreplacedb para o mesmo diretório do wp-config.php
  8. Subir com os arquivos para o ambiente destino
  9. Alterar o permissionamento da pasta wp-content/uploads
  10. Importar na base criada o dump da base original
  11. Acessar o Search-Replace-DB-master e realizar as trocas de endereço
  12. Apagar o Search-Replace-DB-master do ambiente de produção
  13. Acesse o painel do WordPress, vá em configurações, Links permanentes e, sem alterar nada, salve.

Agora que você já sabe como migrar seu site em WordPress, que tal saber um pouco mais sobre widgets?

Tags:

Comentários

  • Felipe, tem uma matéria bem interessante que dá uma dica de queries direto no phpmyadmin, o que te livra de fazer o reuload e relink das imagens (bom para sites de portfolio extensos por exemplo. O link é este aqui: http://www.mydigitallife.info/how-to-move-wordpress-blog-to-new-domain-or-location/

  • Tem o plugin Duplicator, que faz toda a maravilha pra gente!

  • 1- Eu fiz migração do site blog do “wordpress.com” GRATUITO para “worpress.org”
    Optei para hospedagem no Host

    2- Enviei o wordpress.org 3.7.1 ptBR para o servidor host

    3- Ja está instalado e funcionando

    4- Com mesmo tema tambem enviado, para o host. mesmo tema que eu tinha no wordpress.com.

    5-Enviei arquivos XML do PC para o servidor. via FTP Filezila. estão na pasta ” public ” ( XML gerado pelo backup do wordpress.com export.)

    6- Enviei tambem o mesmo site blog em partes (XML parcial) este já está online no ar, mas faltando pedacos.

    7- Quero ativar e atualizar com o arquivo XML do blog completo como eu tinha antes com fotos e links. ( Arquivo XML do blog completo ja esta no servidor pasta public enviado via FTP)

    8- Gostaria de uma ajuda para ativar e atualizar isso. se possivel passo-a-passo pois nao entendo nada de servidores e migração de sites completos
    at Katia

    from katiaraynier.wordpress.com to

    nvw.url.ph

  • Katia Raynier comentou em 4 de janeiro de 2014.

    fiz a migracao do blog wordpress.com para wordpress.org
    servidor
    porem as imagens sumiram
    pode me dar dicas de como voltar a ser como era antes? no novo servidor
    foi feito backup completo como manda o figurino em arquivo XML

  • Amigo, vi esse tutorial ontem. Hoje fiz o procedimento e deu tudo certo. É o meu segundo projeto desenvolvido em WordPress e no primeiro perdi horas identificando as referencias incorretas para substituir no novo servidor. Graças a esse tutorial a migração foi resolvida de imediato sem problemas. Obrigado e parabéns pelo post.