A migração de um site WordPress ou WooCommerce de uma hospedagem compartilhada para um ambiente VPS Linux representa um salto significativo em termos de performance, controle e escalabilidade. Enquanto a hospedagem compartilhada oferece conveniência inicial, ela limita o uso de recursos e a capacidade de otimização profunda. Ao migrar para um servidor privado virtual, você assume o controle total da pilha tecnológica, permitindo a implementação de stacks como LEMP (Linux, Nginx, MySQL/MariaDB, PHP) ou ambientes com OpenLiteSpeed, além de integrar cache Redis para reduzir drasticamente os tempos de resposta do banco de dados.
Este tutorial guia sysadmins, desenvolvedores e profissionais de TI por todo o processo técnico de migração, desde o provisionamento inicial até a configuração avançada de cache e validação final. O foco é garantir zero downtime ou um período de indisponibilidade mínimo, mantendo a integridade dos dados e a otimização para WordPress (otimização WP).
Etapa 1: Preparação do Ambiente VPS Linux
O primeiro passo consiste em provisionar o servidor. Recomenda-se utilizar uma distribuição LTS (Long Term Support) como Ubuntu 22.04 ou Debian 12, devido à vasta documentação e estabilidade para servidores web. Após acessar o painel de controle da sua provedora de cloud, realize o login via SSH no novo servidor.
Inicialmente, atualize o sistema operacional e crie um usuário com privilégios sudo para evitar operar diretamente como root, seguindo as melhores práticas de segurança.
sudo apt update && sudo apt upgrade -y
sudo adduser adminuser
sudo usermod -aG sudo adminuser
Configure o firewall básico (UFW) para liberar apenas as portas essenciais: HTTP (80), HTTPS (443) e SSH (22). Isso reduz a superfície de ataque antes mesmo de instalar os serviços web.
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
Etapa 2: Instalação da Pilha LEMP e Otimizações Básicas
A instalação da stack LEMP é o coração do novo ambiente. No entanto, para sites WordPress modernos, a configuração padrão não é suficiente. É necessário ajustar parâmetros do PHP e do banco de dados para suportar cargas mais altas.
Instale Nginx, MariaDB e PHP-FPM (versão 8.1 ou superior). Para ambientes que priorizam compatibilidade extrema com plugins de cache proprietários, o OpenLiteSpeed é uma alternativa válida, mas a stack LEMP com Nginx continua sendo o padrão da indústria para flexibilidade.
sudo apt install nginx mariadb-server php-fpm php-mysql php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
Após a instalação, é crucial otimizar o PHP. Edite o arquivo de configuração do seu pool PHP (geralmente localizado em /etc/php/8.1/fpm/pool.d/www.conf) e ajuste parâmetros como memory_limit, max_execution_time e, principalmente, as configurações de OPcache para acelerar a execução dos scripts PHP.
Etapa 3: Configuração do Banco de Dados e Cache Redis
Migre o banco de dados da hospedagem antiga. Exporte-o utilizando ferramentas como phpMyAdmin ou WP-CLI no servidor antigo, e importe no novo servidor MariaDB.
# No servidor antigo
wp db export /tmp/backup.sql --allow-root
# No novo servidor VPS
mysql -u root -p wordpress_db < /tmp/backup.sql
Para a otimização WP, a instalação do módulo de cache Redis é indispensável. Ele armazena consultas ao banco de dados na memória RAM, reduzindo drasticamente o tempo de carregamento de páginas dinâmicas.
sudo apt install redis-server php-redis
sudo systemctl enable --now redis-server
Configure o PHP para usar o Redis como backend de sessões e cache. Isso requer a instalação do plugin "Redis Object Cache" no WordPress, que deve ser ativado e conectado ao servidor local (localhost).
Etapa 4: Configuração do Servidor Web (Nginx ou OpenLiteSpeed)
A configuração do servidor web difere dependendo da stack escolhida. Para Nginx, crie um arquivo de bloco de servidor em /etc/nginx/sites-available/seusite.com. A configuração deve incluir redirecionamento permanente de HTTP para HTTPS, compressão Gzip/Brotli e regras de cache estático.
Se estiver utilizando OpenLiteSpeed, a interface web administrativa facilita a criação do virtual host. Certifique-se de configurar o Document Root corretamente e ativar o módulo LiteSpeed Cache, que é altamente eficiente para WordPress.
# Exemplo básico de bloco Nginx com SSL
server {
listen 80;
server_name seu-domínio.com www.seu-domínio.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name seu-domínio.com;
# Configurações de SSL, caminhos de raiz e localização PHP aqui
# ...
}
Teste a configuração antes de recarregar o serviço para evitar erros de sintaxe que deixariam o site fora do ar.
sudo nginx -t
sudo systemctl reload nginx
Etapa 5: Migração de Arquivos e Permissões
A migração dos arquivos pode ser feita via rsync para manter permissões e estruturas de diretórios intactas. Isso é preferível ao uso de FTP, que pode alterar permissões ou corromper symlinks.
rsync -avz --progress /caminho/origem/site/ usuario@seu-ip-vps:/var/www/seusite.com/html/
Após a cópia, ajuste as permissões de arquivos e diretórios. No WordPress, os arquivos devem ser propriedade do usuário do sistema (geralmente www-data) ou do usuário administrativo, dependendo da configuração de atualização automática. A estrutura padrão recomendada é:
- Diretórios: permissão 755
- Arquivos: permissão 644
wp-config.php: permissão 600 (restrição máxima)
sudo chown -R www-data:www-data /var/www/seusite.com/html
sudo find /var/www/seusite.com/html -type d -exec chmod 755 {} \;
sudo find /var/www/seusite.com/html -type f -exec chmod 644 {} \;
Etapa 6: Validação e Plugins Essenciais
Antes de apontar o DNS, valide o funcionamento do site usando o IP público do VPS. Edite temporariamente seu arquivo hosts local para mapear o domínio ao novo IP.
# No terminal local (Linux/Mac)
echo "192.0.2.1 seu-domínio.com" | sudo tee -a /etc/hosts
Navegue até o site e verifique se todas as funcionalidades, incluindo uploads de mídia e login administrativo, estão operando. Instale plugins essenciais para monitoramento e segurança no novo ambiente:
- Wordfence ou iThemes Security: Para proteção contra invasões.
- Redis Object Cache: Para garantir que o cache de banco de dados está ativo.
- WP-Optimize: Para limpeza de banco de dados e otimização de imagens.
Se você gerencia múltiplos sites, considere usar WP-CLI para gerenciar atualizações e backups em lote. A ferramenta é poderosa para automação e evita erros manuais.
wp plugin list --allow-root
wp core update-db --allow-root
Etapa 7: Cutover de DNS e Verificação Final
Reduza o TTL (Time To Live) do registro A ou CNAME do seu domínio para um valor baixo (ex: 300 segundos) algumas horas antes da migração. Isso permite que a propagação do DNS ocorra rapidamente.
Atualize o registro de DNS no seu registrador de domínios para apontar para o IP do novo VPS. Aguarde a propagação, que pode variar de minutos a horas, dependendo da infraestrutura global.
Após a propagação, verifique se o SSL está funcionando corretamente. Se estiver usando Let's Encrypt, certifique-se de renovar os certificados automaticamente usando Certbot.
sudo certbot --nginx -d seu-domínio.com -d www.seu-domínio.com
Realize testes finais de performance utilizando ferramentas como GTmetrix ou PageSpeed Insights. O objetivo é verificar se o cache Redis e a configuração do Nginx/OpenLiteSpeed estão entregando os recursos otimizados.
Considerações Finais sobre Multisite e Escalabilidade
Para usuários de WordPress Multisite, a migração requer atenção especial às configurações de subdomínios e subsites. A estrutura de banco de dados é diferente, e plugins de cache precisam ser configurados para lidar com a rota correta entre sites.
A migração para VPS não é apenas uma mudança de servidor, mas uma oportunidade para reestruturar a arquitetura de infraestrutura. Ao dominar a configuração da stack LEMP, OpenLiteSpeed e cache Redis, você garante que seu WordPress ou WooCommerce esteja preparado para picos de tráfego, oferecendo uma experiência de usuário superior e maior segurança.
Lembre-se sempre de manter backups automáticos no novo servidor. Utilize scripts cron ou plugins dedicados para realizar cópias diárias do banco de dados e dos arquivos, enviando-os para um armazenamento externo seguro como S3 ou Google Cloud Storage.