Novo: A BlogLite migra gratuitamente seu site ou blog quando você contrata uma hospedagem conosco.
Saiba mais aqui.

Chegou o momento de falar de migrações, como transferir seu WordPress de um servidor para outro, do ambiente local para um ambiente online e, também uma questão muito levantada nos fóruns, migrar o site de uma pasta /site para a raiz.

O foco desse post é entender os processos necessários para essa atividade, os cuidados e riscos envolvidos. Antes de mais nada, tome bastante cuidado com o que está fazendo e sempre tenha backup de tudo no seu site.

Para iniciar esse processo, devemos levar em conta os requisitos mínimos que o software WordPress exige:

Requisitos do WordPress

  • Servidor baseado em UNIX/Linux
  • PHP versão 5.2.4 ou superior
  • MySQL versão 5.0 ou superior
  • Memória para o PHP de pelo menos 64 MB (Somente para o software WordPress, sem plugins adicionais)
Para recursos extras
  • Memória para o PHP de pelo menos 256 MB
  • Apache ou Nginx
  • Módulo mod_rewrite do Apache ativo
  • Extensões PHP como php_exifphp_GD etc (recursos nativos e de plugins)

Essas definições estão descritas no próprio site do WordPress, e elas definem o mínimo que a estrutura do servidor deve possuir para o seu WordPress funcionar adequadamente. Ainda assim, encontramos muitas pessoas hospedando seus sites em servidores Windows, o que pode oferecer inúmeros erros e falhas ao longo do processo.

 

Nota importante
  • Mesmo com o instalador automático, verifique a quantidade de memória disponível ao PHP, quantidades menores que 64 MB levam a erros no WordPress impossibilitando o acesso ao painel do site e/ou a não conclusão adequada da instalação.

 

Acessos e ferramentas necessários

Para realizar uma migração, precisamos de alguns acessos das duas partes (servidor onde está hospedado e servidor que vai receber a migração).

  • PHPMyAdmin – Onde realizaremos exportação e importação de banco de dados, além de rodar alguns comandos SQL para alterar url’s dentro do banco.
  • WordPress – Acesso a administração do WordPress
  • FTP (ou cPanel) – Para envio e organização dos arquivos.


Cenário

Vamos criar um cenário para ser base desse passo a passo.

Nosso primeiro exemplo será a migração de um ambiente local (quando você instala um WordPress no seu computador) para um ambiente online. Sempre respeitando os requisitos mínimos apresentados acima. O meu ambiente local é um EasyPHP, que nesse cenário usei para criar um tema WordPress de um cliente, e já finalizado o site está com todas as páginas configuradas e com conteúdo (Home, Quem somos, Serviços, Notícias, Contato).

Temos aqui duas opções de migração: podemos copiar o WordPress inteiro (completo) que temos localmente, com a pasta plugins e themes. Isso é muito útil quando o WordPress está em uma versão específica, ou seu tema depende de muitos plugins e quando homologou muito conteúdo desse cliente. Ou então, se for um trabalho pontual, você pode migrar apenas o tema que desenvolveu e o banco de dados. Vamos continuar esse exemplo com a primeira opção, migrando o WordPress inteiro.

No seu ambiente local

Primeiro passo
Faça um arquivo .zip do seu WordPress completo. Perceba que, além das pastas plugins e themes, se você adicionou muito conteúdo de mídias, ele vai ter também a pasta uploads, onde estão as imagens e thumbnails gerados pelo WordPress, e quando finalizarmos a migração esse conteúdo estará online exatamente como estava no seu ambiente local.

migracao-wordpress-1

Segundo passo
Exporte o banco de dados do seu WordPress pelo PHPMyAdmin do seu servidor local. Esse processo é simples: clique sobre o banco de dados do WordPress utilizado e clique em Exportar. Ele apresentará algumas configurações, mas pode usar as que ele traz por padrão; clique em Executar. Ele vai salvar no seu computador um arquivo com nome do banco e extensão .sql, nesse exemplo o meu é “wp_bloglite.sql”

Terceiro passo
Com esses arquivos prontos você vai precisar subir o zip que criamos no primeiro passo para o FTP desejado. Nesse ponto eu prefiro trabalhar com zip e pelo cPanel porque a transferência dos arquivos é ligeiramente mais rápida. Faça o upload e extraia os arquivos para a pasta desejada, nesse cenário para a raiz do FTP.

Quarto passo
Crie um banco de dados para o site online que estamos migrando. No seu PHPMyAdmin online, crie esse banco de dados e anote nome do banco, usuário e senha, além do endereço (host) do mesmo. Dependendo da sua hospedagem, muito comum em revendas, o prefixo dos bancos de dados criados virão com o nome de usuário desse PHPMyAdmin por padrão, por exemplo “rs78945_”. Nesse caso o nome do nosso banco de dados ficará assim “rs78945_bloglite”.

Quinto passo
Edite o arquivo wp-config.php da raiz do seu WordPress online, coloque as informações nome do banco, usuário e senha, e endereço do banco que anotamos no quarto passo.

migracao-wordpress-2

Em alguns casos, é normal que o nome do host (endereço) seja localhost mesmo, caso não seja verifique com sua hospedagem qual o endereço correto para acesso ao banco de dados.

Sexto passo
Importe o banco de dados local para o PHPMyAdmin online. No banco de dados que criamos (online), clique na opção importar. Aqui também não precisaremos alterar nenhuma configuração. Apenas selecione o arquivo .sql do seu banco local e faça a importação.

Raramente esse item apresenta falhas, mas um que eu já encontrei é justamente em relação ao nome do banco de dados, como comentei acima: em alguns servidores o nome do banco já vem com um prefixo setado, e como exportamos o banco de um ambiente local, o nome provavelmente estará diferente. Para solucionar isso eu precisei abrir o arquivo .SQL em um editor de códigos e substituí todas as entradas para o nome do novo banco que criei online e funcionou perfeitamente.

Pronto, temos todos os itens do WordPress online, porém ainda precisamos fazer alguns comandos no banco de dados para alterar as URLs antigas para as novas URLs. No próprio PHPMyAdmin, selecione o banco de dados em que importou o WordPress, clique na aba SQL e vamos rodar os seguintes comandos:

Alterando os caminhos absolutos da URL do site (‘siteurl’) e URL da home (homeurl’)

UPDATE wp_options
SET option_value = REPLACE(option_value,
'http://www.siteantigo.com.br', 'http://www.sitenovo.com.br')
WHERE option_name = 'home'
OR option_name = 'siteurl';

Alterar GUID

UPDATE wp_posts
SET guid = REPLACE (guid,
'http://www.siteantigo.com.br''http://www.sitenovo.com.br');

Alterar URLs dentro dos conteúdos

UPDATE wp_posts

SET post_content = REPLACE (post_content,
'http://www.siteantigo.com.br''http://www.sitenovo.com.br');

Alterar caminho das imagens

UPDATE wp_posts

SET post_content = REPLACE (post_content,
'src="http://www.siteantigo.com.br', 'src="http://www.siteantigo.com.br');

e ainda nos attachments, precisamos alterar o GUID dos mesmos

UPDATE wp_posts

SET guid = REPLACE (guid,
'http://www.siteantigo.com.br', 'http://www.siteantigo.com.br')
WHERE post_type = 'attachment';

Pronto, com esses passos bem executados, sem erros ou surpresas, você pode acessar seu site na versão online e tudo deve funcionar. Subimos os arquivos, o banco de dados e alteramos as entradas no bando para substituir as URLs antigas pela nova URL.

Uma dica para o desenvolvimento local
Nos fóruns já encontrei algumas pessoas falando que as imagens quebram ao colocar o site em um ambiente online. Em alguns casos específicos percebi que as pessoas estavam linkando as imagens com URLs absolutas, colocando no código algo assim:

<img src="../images/logo.png" alt="Logo da Empresa">

Mas para isso funcionar corretamente em qualquer ambiente, é preciso usar funcções do WordPress para imprimir o caminho até a pasta onde a imagem está, dessa forma:

<img src="<?php echo get_stylesheet_directory_uri(); ?>/images/logo.png" alt="Logo da Empresa">

Segundo cenário: Em dois ambientes online (de um servidor para outro)

Quando a migração for feita entre dois servidores online, o procedimento é o mesmo do que comentamos acima. Siga todos os passos exatamente da mesma forma.

Nesse cenário, é comum o risco de incompatibilidade entre os dois servidores ser maior. Siga a risca os requisitos mínimos para o WordPress. Normalmente em migrações desse tipo as versões do MySQL e do PHP são diferentes, alguns plugins e o próprio WordPress podem funcionar de forma diferente e cada caso é um caso. Se estiver com problemas, comente aqui e vamos tentar ajudar a solucionar os problemas.

Duplicator

Outra forma muito interessante de migração é usando o plugin WordPress Duplicator. Ele basicamente faz uma cópia integral do WordPress e então gera um arquivo e um instalador para ser acionado no novo servidor, onde ficará a cópia desse WordPress.

Veja nesse vídeo como funciona o plugin:

 

Conclusão

Como podemos ver existem várias formas que podem nos auxiliar na migração de sites WordPress, como em qualquer ferramenta o mais adequado é que você escolha aquele que mais se relaciona com o seu cenário. Essas não são as únicas opções existentes para esse tipo de demanda nem mesmo os mais práticos, mas são formas que eu utilizo no dia a dia e que atendem adequadamente os cenários em que aplico. Se você usa outro tipo de migração ou conhece alguma forma de otimizar esse processo, comente abaixo sua experiência!

 

Migrar o WordPress parece complicado? A BlogLite migra gratuitamente seu site ou blog quando você contrata uma hospedagem. Saiba mais aqui.