10 min de leitura · Guia técnico
Migrar WordPress para VPS é o processo de transferir um site WordPress de um servidor para outro sem interromper o funcionamento do site. Para migrar WordPress sem downtime, siga estes passos:
- Prepare o ambiente VPS de destino com LAMP/LEMP stack
- Faça backup completo do site e banco de dados
- Configure o WordPress no novo VPS em paralelo
- Sincronize arquivos e banco de dados
- Altere os registros DNS gradualmente
- Monitore e valide a migração
Pré-requisitos para migração WordPress
- Acesso SSH ao VPS de destino com Ubuntu 22.04 LTS
- Servidor web configurado (Apache 2.4 ou Nginx 1.24)
- PHP 8.2 ou superior instalado
- MySQL 8.0 ou MariaDB 10.6 configurado
- Acesso ao painel de controle do domínio para alterar DNS
- Backup completo do site WordPress atual
- Pelo menos 2GB de espaço livre no VPS
Preparando o ambiente VPS para WordPress
O primeiro passo para migrar WordPress sem downtime é configurar o ambiente de destino. Instale o stack LAMP no seu VPS Ubuntu:
sudo apt update && sudo apt upgrade -y
sudo apt install apache2 mysql-server php8.2 php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip -y
Configure o MySQL e crie um banco de dados para o WordPress:
sudo mysql_secure_installation
sudo mysql -u root -p
No console MySQL, execute:
CREATE DATABASE wordpress_novo;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'senha_forte_123';
GRANT ALL PRIVILEGES ON wordpress_novo.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Configure um virtual host temporário para testar o WordPress antes da migração DNS:
sudo nano /etc/apache2/sites-available/wordpress-temp.conf
Adicione a configuração:
<VirtualHost *:80>
ServerName temp.seudominio.com
DocumentRoot /var/www/wordpress
ErrorLog ${APACHE_LOG_DIR}/wordpress_error.log
CustomLog ${APACHE_LOG_DIR}/wordpress_access.log combined
</VirtualHost>
Backup e transferência de arquivos WordPress
Antes de iniciar a transferência de arquivos WordPress, crie um backup completo do site atual. No servidor de origem, execute:
cd /caminho/para/wordpress
tar -czf wordpress-backup-$(date +%Y%m%d).tar.gz .
mysqldump -u usuario -p nome_banco > wordpress-db-backup-$(date +%Y%m%d).sql
Transfira os arquivos para o novo VPS usando rsync para sincronização eficiente:
rsync -avz --progress /caminho/local/wordpress/ usuario@ip-vps:/var/www/wordpress/
Para sites grandes, use compressão durante a transferência:
rsync -avz --compress --progress /caminho/local/wordpress/ usuario@ip-vps:/var/www/wordpress/
Ajuste as permissões dos arquivos WordPress no VPS:
sudo chown -R www-data:www-data /var/www/wordpress
sudo find /var/www/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/wordpress -type f -exec chmod 644 {} \;
Importação e sincronização do banco de dados
Importe o banco de dados WordPress no novo servidor MySQL. Primeiro, transfira o arquivo SQL:
scp wordpress-db-backup-*.sql usuario@ip-vps:/tmp/
No VPS, importe o banco de dados:
mysql -u wp_user -p wordpress_novo < /tmp/wordpress-db-backup-*.sql
Atualize as URLs no banco de dados para refletir o novo ambiente temporário:
mysql -u wp_user -p wordpress_novo
Execute as queries de atualização:
UPDATE wp_options SET option_value = 'http://temp.seudominio.com' WHERE option_name = 'home';
UPDATE wp_options SET option_value = 'http://temp.seudominio.com' WHERE option_name = 'siteurl';
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://seudominio.com', 'http://temp.seudominio.com');
Configure o arquivo wp-config.php com as novas credenciais do banco:
sudo nano /var/www/wordpress/wp-config.php
Atualize as configurações:
define('DB_NAME', 'wordpress_novo');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', 'senha_forte_123');
define('DB_HOST', 'localhost');
Configuração de DNS para migração sem downtime
Para realizar a migração WordPress sem downtime, configure um subdomínio temporário primeiro. No painel de controle do seu domínio, adicione um registro A:
temp.seudominio.com A IP-DO-NOVO-VPS
Teste o site no ambiente temporário acessando temp.seudominio.com. Verifique se todas as funcionalidades estão operando corretamente.
Quando confirmar que tudo funciona, prepare a migração DNS final. Reduza o TTL dos registros DNS principais para 300 segundos (5 minutos):
seudominio.com A 300 IP-ANTIGO
www.seudominio.com A 300 IP-ANTIGO
Aguarde o TTL anterior expirar (geralmente 24 horas) antes de prosseguir com a alteração final.
Execução da migração final
No momento da migração final, sincronize novamente os arquivos e banco de dados para capturar mudanças recentes:
rsync -avz --delete --progress /caminho/local/wordpress/ usuario@ip-vps:/var/www/wordpress/
Faça um dump incremental do banco de dados e importe:
mysqldump -u usuario -p --single-transaction nome_banco > wordpress-final-$(date +%Y%m%d-%H%M).sql
mysql -u wp_user -p wordpress_novo < wordpress-final-*.sql
Atualize o wp-config.php para as URLs finais:
UPDATE wp_options SET option_value = 'https://seudominio.com' WHERE option_name = 'home';
UPDATE wp_options SET option_value = 'https://seudominio.com' WHERE option_name = 'siteurl';
Configure o virtual host final no Apache:
sudo nano /etc/apache2/sites-available/seudominio.conf
<VirtualHost *:80>
ServerName seudominio.com
ServerAlias www.seudominio.com
DocumentRoot /var/www/wordpress
Redirect permanent / https://seudominio.com/
</VirtualHost>
Ative o site e reinicie o Apache:
sudo a2ensite seudominio.conf
sudo systemctl reload apache2
Altere os registros DNS para apontar para o novo VPS:
seudominio.com A 300 IP-NOVO-VPS
www.seudominio.com A 300 IP-NOVO-VPS
Problemas comuns e como resolver
Site exibe erro de conexão com banco de dados
Causa: Credenciais incorretas no wp-config.php ou serviço MySQL parado.
Solução: Verifique as credenciais no wp-config.php e confirme se o MySQL está rodando com sudo systemctl status mysql. Teste a conexão manualmente com mysql -u wp_user -p wordpress_novo.
Imagens e CSS não carregam após migração
Causa: URLs hardcoded no banco de dados apontando para o servidor antigo.
Solução: Execute uma busca e substituição completa no banco de dados usando WP-CLI: wp search-replace 'http://dominio-antigo.com' 'https://seudominio.com' --dry-run e depois sem --dry-run para aplicar.
Plugins apresentam erros após migração
Causa: Incompatibilidade de versão PHP ou extensões faltando no novo servidor.
Solução: Verifique os logs de erro em /var/log/apache2/error.log e instale extensões PHP necessárias. Desative plugins problemáticos temporariamente via banco de dados alterando a opção 'active_plugins'.
Performance degradada no novo VPS
Causa: Configuração inadequada do servidor web ou falta de cache.
Solução: Configure cache de objeto com Redis, otimize o MySQL com mysql_secure_installation e ajuste os parâmetros do Apache em /etc/apache2/apache2.conf. Considere implementar um CDN para arquivos estáticos.
Monitoramento pós-migração
Após completar a migração WordPress, monitore o site por pelo menos 48 horas. Configure alertas para verificar a disponibilidade:
curl -I https://seudominio.com | head -n 1
Monitore os logs de erro continuamente:
sudo tail -f /var/log/apache2/error.log
Verifique a performance com ferramentas como GTmetrix e compare com métricas anteriores. Configure backups automáticos no novo ambiente:
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
mysqldump -u wp_user -p wordpress_novo > /backup/wp_db_$DATE.sql
tar -czf /backup/wp_files_$DATE.tar.gz /var/www/wordpress
Para automatizar, adicione ao crontab:
0 2 * * * /path/to/backup-script.sh
Perguntas frequentes sobre migrar WordPress para VPS
É possível migrar WordPress sem downtime?
Sim, é possível migrar WordPress sem downtime usando técnicas de sincronização e troca gradual de DNS. O processo envolve preparar o novo ambiente, sincronizar arquivos e banco de dados, e depois alterar os registros DNS para redirecionar o tráfego.
Quanto tempo demora para migrar WordPress para VPS?
A migração completa pode levar de 2 a 8 horas, dependendo do tamanho do site e da velocidade da conexão. A preparação e sincronização inicial consomem a maior parte do tempo, enquanto a troca final de DNS leva apenas alguns minutos.
Preciso fazer backup antes de migrar WordPress?
Sim, fazer backup completo é obrigatório antes de qualquer migração. Inclua todos os arquivos do WordPress, banco de dados MySQL e configurações do servidor. Mantenha o backup acessível durante todo o processo de migração.
O que acontece se algo der errado durante a migração?
Se houver problemas durante a migração, você pode reverter os registros DNS para o servidor original em poucos minutos. Por isso é essencial manter o ambiente antigo funcionando até confirmar que a migração foi bem-sucedida.
Como verificar se a migração WordPress foi bem-sucedida?
Verifique se o site carrega corretamente no novo VPS, teste todas as funcionalidades principais, confirme que os plugins funcionam e monitore os logs de erro. Use ferramentas como GTmetrix para comparar a performance antes e depois da migração.
Conclusão
- Prepare o ambiente VPS completamente antes de iniciar a transferência de arquivos
- Use sincronização incremental para minimizar o tempo de inatividade durante a troca DNS
- Monitore o site por 48 horas após a migração para identificar problemas rapidamente
Leia também
- Dicas de Otimização para Hospedagem WordPress
- Tutorial: Passo a passo para instalar o WordPress na AviraHost usando o WP Toolkit do cPanel
- Guia para resolver erro de memória no WordPress: diagnóstico e ampliação
Precisa de ajuda com migração WordPress?
Nossa equipe especializada pode realizar a migração do seu WordPress para VPS sem downtime, garantindo que todos os dados sejam transferidos com segurança. Oferecemos suporte completo durante todo o processo de migração.