Aqui está um trabalho que já me fez passar muita raiva, migrar um site WordPress para outro servidor. Mas se você chegou até aqui, pelo visto não estou sozinho. Acredite! Essa tarefa pode acabar com seu dia se não fizer da forma correta.
Muitas vezes um pequeno erro, e adeus seu lindo site WordPress. A boa notícia é que criei este artigo para nunca mais ter que passar horas quebrando cabeça e estou te poupando também.
Então vamos lá!
Para transferir um site WordPress para outro servidor usando a linha de comando, basicamente você precisará seguir estas etapas:
- Faça backup dos arquivos e do banco de dados do seu site WordPress. Você pode fazer isso usando o comando mysqldump para exportar seu banco de dados e o tarcomando para empacotar seus arquivos.
- Transfira os arquivos de backup para o novo servidor. Você pode usar o comando scp para transferir os arquivos por SSH.
- Crie um novo banco de dados no novo servidor e importe o arquivo de backup do banco de dados. Você pode usar o comando mysql para fazer isso.
- Edite o arquivo wp-config.php para refletir as novas credenciais do banco de dados.
- Extraia os arquivos de backup no local apropriado no novo servidor.
- Atualize as opções siteurl e home na tabela wp_options para refletir a nova URL do site. Você pode fazer isso usando o comando mysql.
Estas são as etapas gerais para transferir um site WordPress para um novo servidor usando a linha de comando. Mais abaixo vamos detalhar passo a passo.
ÍNDICE DE CONTEÚDO
Requisitos
- Acesso SSH e FTP ao servidor
- Permissão para alterar, criar e transferir arquivos e pastas
- PHP, MySQL, Nginx e WordPress instalados no novo servidor Ubuntu ou Debian
Para instalar o WordPress em um novo servidor Ubuntu, usei a DigitalOcean e recomendo a você!
Passo a passo para migrar o WordPress para um novo servidor
Se você tiver erros ou dúvidas, deixe um comentário no final do Artigo! Vamos aos detalhes!
1. Faça backup do banco de dados
Vamos usar o comando mysqldump para exportar nosso banco de dados e o comando tar para compactar seus arquivos. Antes disso, tenha em mãos as informações do Banco de dados do site antigo.
Você pode encontrar o nome de usuário do banco de dados, senha e outros detalhes no arquivo wp-config.php no diretório raiz da instalação do WordPress. O arquivo contém as seguintes informações:
define('DB_NAME', 'database_name');
define('DB_USER', 'database_user');
define('DB_PASSWORD', 'database_password');
define('DB_HOST', 'localhost');
Agora com o comando abaixo vamos gerar um arquivo chamado backup_file.sql com o nosso banco da dados.
mysqldump -u username --password=password database_name > backup_file.sql
Substitua username, password, database_name pelo seu usuário, senha e nome do banco da dados, respectivamente.
2. Faça backup dos arquivos do WordPress
Em seguida vamos fazer o backup da pasta de instalação do seu site, no meu caso fica em htdocs, onde contém as pastas wp-admin, wp-includes, wp-content e todos os arquivos necessários.
Abra o terminal SSH, acesse o diretório dos arquivos do site, no meu caso fica em /var/www/domíniodosite. Agora vamos fazer um backup completo da pasta htdocs executando o comando abaixo:
tar -zcvf backup_file.tar.gz htdocs
Ou de onde estiver, execute o comando (com o ponto no final):
tar -zcvf /path/to/site/directory/htdocs/backup_file.tar.gz -C /path/to/site/directory/htdocs/ .
Substitua /path/to/site/directory/ pelo diretório da sua instalação, que normalmente seria /var/www/seusite/htdocs.
Esse comando irá compactar tudo que estiver na pasta htdocs e criará em um arquivo chamado backup_file.tar.gz.
3. Transfira os arquivos de backup para o novo servidor
Acesse o novo servidor para importar os arquivos do velho. Antes disso, delete a pasta da sua nova instalação do WordPress, no meu caso fica em htdocs.
Nesse exemplo, minha pasta htdocs fica no diretório /var/www/meusite.com.br e após acessa-lo vou usar o comando abaixo para deletar:
rm -r htdocs
Agora que deletamos, vamos importar a pasta htdocs do servidor antigo. Ainda no mesmo diretório, use o comando rsync para importar os arquivos:
rsync -avz -e 'ssh -p 22' root@000.00.00.00:/path/to/site/directory/backup_file.tar.gz /path/to/site/directory/htdocs/ --info=progress2
Substitua 000.00.00.00 pelo IP do antigo servidor e /path/to/site/directory/ pelo diretório onde está o arquivo compactado. (Se root não for seu usuário, substitua também).
No segundo trecho do código substitua /path/to/site/directory/ pelo diretório onde quer que o arquivo fique no novo servidor. No código de exemplo vamos importar o arquivo backup_file.tar.gz do antigo servidor localizado no diretório /path/to/site/directory/.
Use o mesmo comando para importar o arquivo backup_file.sql gerado do seu banco de dados.
OBS: Ao executar o comando, será solicitado a senha do antigo servidor.
NOTA: Em alguns casos, talvez seja necessário se conectar ao servidor antigo antes de executar o comando anterior. Para isso, no novo servidor execute o comando abaixo substituindo 000.00.00.00 pelo IP do antigo servidor:
ssh -p 22 root@000.00.00.00
Agora que estamos com todos os arquivos no novo servidor, vamos descompacta-los. Descompacte o arquivo backup_file.tar.gz com o comando abaixo:
tar -xvzf backup_file.tar.gz
4. Importe seu Banco de dados
A próxima etapa será importar o banco de dados. Como você já deve ter transferido o arquivo do banco de dados para o novo servidor, agora precisa importar esse arquivo para seu novo banco de dados. Para isso use o comando abaixo:
mysql -u username --password=senhadobancodedados database_name < /path/to/site/directory/backup_file.sql
Se quiser ter certeza que deu certo a importação, use o comando abaixo:
mysql -u username --password=senhadobancodedados database_name -e "SHOW TABLES;"
5. Edite o arquivo wp-config.php
Abra o arquivo wp-config.php e verifique se os dados estão corretos para refletir as novas credenciais do banco de dados. Geralmente é necessário verificar o prefixo da tabela se é o mesmo do servidor antigo. Nesse exemplo o prefixo é wp_.
$table_prefix = 'wp_';
Confira também se as informações do Banco de dados estão corretas:
define('DB_NAME', 'database_name');
define('DB_USER', 'database_user');
define('DB_PASSWORD', 'database_password');
Salve o arquivo.
IMPORTANTE: Delete os arquivos da pasta raiz caso estejam. Por exemplo, o meu diretório de instalação fica em /var/www/meusite.com/htdocs. Se os arquivos transferidos backup_file.sql e backup_file.tar.gz estiverem nessa pasta, exclua-os!
rm -r backup_file.sql backup_file.tar.gz
6. Alterando o DNS para refletir a nova instalação
Antes disso, vamos verificar como estamos indo. Se você usa Windows, acesse o diretório C:\Windows\System32\drivers\etc. Abra o arquivo hosts com o Bloco de Notas ou um Editor de código, no meu caso uso o Notepad ++.
Adicione o IP do seu novo servidor como abaixo:
000.00.00.00 seusite.com
000.00.00.00 www.seusite.com
Substitua 000.00.00.00 pelo seu IP do novo servidor e seusite.com pelo domínio configurado na sua nova instalação WordPress.
Salve o arquivo. Agora abra o Prompt de comando do Windows como administrador. Para limpar o cache DNS, use o seguinte comando:
ipconfig /flushdns
Agora acesse seu site pelo navegador e veja se saiu tudo como esperado. Se tiver dado tudo certo, comente com # antes linhas adicionadas e limpe o cache DNS novamente.
Em seguida pode alterar o DNS normalmente no sua hospedagem WordPress. No meu caso uso e recomendo a Cloudflare.
Então é isso pessoal! Espero ter ajudado.
Quero saber como foi sua experiência, deixe um comentário! Compartilhe também com seus amigos! Sucesso!