Migração Segura de WordPress para VPS com Stack LEMP e OpenLiteSpeed

10 min de leitura VPS e Cloud
Migração Segura de WordPress para VPS com Stack LEMP e OpenLiteSpeed

A migração de um site WordPress ou WooCommerce de uma hospedagem compartilhada para uma VPS (Virtual Private Server) é um dos passos mais decisivos na carreira de um administrador de sistemas e desenvolvedor web. Enquanto a hospedagem compartilhada oferece simplicidade, ela frequentemente impõe gargalos de desempenho devido à vizinhança ruidosa e configurações padronizadas. Ao migrar para uma infraestrutura dedicada, você ganha controle total sobre o ambiente LEMP (Linux, Nginx, MySQL/MariaDB, PHP) ou stacks alternativas como OpenLiteSpeed, permitindo otimizações finas que impactam diretamente a velocidade de carregamento e a estabilidade do site.

No entanto, essa liberdade vem com a responsabilidade da configuração manual. Uma migração mal executada pode resultar em downtime prolongado, perda de dados ou configurações de segurança vulneráveis. Este tutorial detalha o processo técnico de mover seu site com segurança, focando em práticas robustas para sysadmins e devs que buscam performance máxima e controle granular.

1. Preparação do Ambiente na Nova VPS

Antes de transferir qualquer dado, é crucial garantir que o servidor de destino esteja estável e atualizado. A primeira ação logada via SSH deve ser a atualização dos pacotes do sistema operacional para garantir que todas as correções de segurança estejam aplicadas.

sudo apt update && sudo apt upgrade -y

Em seguida, instale as dependências básicas necessárias para compilar e gerenciar o servidor web e o banco de dados. Para uma stack LEMP padrão, você precisará do Nginx, MariaDB (ou MySQL) e PHP com suas extensões essenciais.

sudo apt install nginx mariadb-server php-fpm php-mysql php-curl php-gd php-intl php-mbstring php-xml php-zip unzip -y

Se a sua escolha for por OpenLiteSpeed, que é particularmente eficiente para WordPress devido ao seu módulo de cache integrado, o processo de instalação varia. Utilize o gerenciador oficial do LiteSpeed ou repositórios específicos para garantir a versão estável e compatível com PHP 8.1 ou superior.

2. Configuração do Banco de Dados

O banco de dados é o coração da aplicação WordPress. Antes de importar os dados, crie um novo banco de dados e um usuário dedicado com privilégios específicos. Nunca utilize o root do banco de dados para a aplicação web.

sudo mariadb -u root -p

Dentro do prompt do MariaDB/MySQL, execute os seguintes comandos:

CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'SenhaForteAqui';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Para sites WooCommerce ou com alto volume de leitura, considere a implementação de cache Redis. Instale o servidor Redis e o módulo PHP correspondente:

sudo apt install redis-server php-redis -y
sudo systemctl enable redis-server
sudo systemctl start redis-server

3. Backup Completo do Site Original

A regra de ouro da migração é: nunca confie na cópia direta em tempo real sem um backup validado. Se você estiver migrando de uma hospedagem compartilhada, o método mais seguro e eficiente para grandes instalações é utilizar o backup WP-CLI. O WP-CLI permite automatizar a exportação do banco de dados e o empacotamento dos arquivos, garantindo integridade.

Caso não tenha acesso SSH no servidor antigo, utilize plugins de backup robustos que gerem um arquivo único contendo banco de dados e arquivos. No entanto, para migração de compartilhada onde você tem acesso cPanel ou Plesk, o uso do terminal via SSH é preferível pela velocidade.

Se estiver usando WP-CLI no servidor antigo:

wp db export backup.sql
tar -czf site-backup.tar.gz wp-content uploads themes plugins --exclude=wp-config.php

Transfira esses arquivos para a nova VPS utilizando o comando scp ou rsync.

scp user@servidor-antigo:/caminho/para/site-backup.tar.gz /var/www/html/
scp user@servidor-antigo:/caminho/para/backup.sql /var/www/html/

4. Extração e Configuração de Permissões

Depois de transferir os arquivos para o diretório raiz do seu site na nova VPS (geralmente /var/www/seu-dominio.com), extraia o conteúdo.

cd /var/www/seu-dominio.com
tar -xzf site-backup.tar.gz

Agora, defina as permissões corretas. No Linux, a segurança depende da distinção clara entre o proprietário dos arquivos e o usuário do servidor web (geralmente www-data). O diretório raiz deve ser de propriedade do seu usuário administrativo, enquanto os arquivos devem ser legíveis pelo www-data.

sudo chown -R seu_usuario:seu_usuario /var/www/seu-dominio.com
sudo find /var/www/seu-dominio.com -type d -exec chmod 755 {} \;
sudo find /var/www/seu-dominio.com -type f -exec chmod 644 {} \;

Para uploads e caches, o PHP precisa de permissão de escrita. Cuidado ao definir permissões 777; prefira configurar o grupo adequado ou usar ACLs se necessário.

5. Importação do Banco de Dados

Com os arquivos no lugar, importe o banco de dados preparado anteriormente.

mysql -u wp_user -p wordpress_db < backup.sql

Após a importação, é fundamental atualizar as URLs internas que ainda apontam para o domínio antigo. O WordPress armazena a URL do site e do endereço no banco de dados. Se você não fizer isso, links internos quebrarão e imagens não carregarão.

Utilize o WP-CLI para essa tarefa, pois é mais seguro e rápido que buscas manuais no phpMyAdmin:

cd /var/www/seu-dominio.com
wp search-replace 'http://dominio-antigo.com' 'https://novo-dominio.com' --all-tables --dry-run

O flag --dry-run permite visualizar as mudanças antes de aplicá-las. Se o resultado estiver correto, remova o flag para executar a substituição real.

6. Configuração do Servidor Web (Nginx ou OpenLiteSpeed)

A configuração correta do servidor web é onde a otimização WP realmente acontece. Um erro comum é usar configurações padrão que não aproveitam os recursos da VPS.

Para Stack LEMP (Nginx):

Crie um arquivo de bloco de servidor em /etc/nginx/sites-available/seu-dominio.com. Uma configuração otimizada deve incluir:

  • Habilitação do Gzip ou Brotli para compressão.
  • Configuração de cache de longa duração para assets estáticos (CSS, JS, Imagens).
  • Rewrites corretos para permalinks WordPress (try_files $uri $uri/ /index.php?$args;).

Ative o site criando um link simbólico:

sudo ln -s /etc/nginx/sites-available/seu-dominio.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Para OpenLiteSpeed:

O OpenLiteSpeed possui um painel administrativo web (LSWebAdmin) na porta 7080. A configuração é visual, mas requer atenção aos detalhes de performance. Instale o módulo LSCache para WordPress, que é o plugin essencial para fazer a ponte entre o servidor e a aplicação.

No painel do OpenLiteSpeed, verifique se o Virtual Host está apontando para o diretório correto e se as configurações de PHP (Handler) estão vinculadas à versão correta instalada anteriormente. Habilite o "Cache" no nível de servidor para serviços estáticos.

7. Otimizações Avançadas de Performance

Com o site rodando, o próximo passo é a otimização WP. Instale e configure plugins essenciais que gerenciam cache e minificação. No entanto, em uma VPS, o cache em nível de servidor (Nginx FastCGI Cache ou OpenLiteSpeed LSCache) deve ser priorizado sobre caches puramente em PHP, pois eles servem páginas estáticas diretamente do disco ou memória, reduzindo drasticamente a carga na CPU.

Configure o cache Redis instalado no passo 2. Instale um plugin como "Redis Object Cache" no WordPress e conecte-o ao serviço local. Isso moverá as consultas frequentes do banco de dados para a memória RAM, acelerando respostas dinâmicas em lojas WooCommerce.

wp redis enable

8. Segurança e Firewall

Um servidor público sem firewall é um convite para ataques automatizados. Utilize o ufw (Uncomplicated Firewall) ou firewalld para liberar apenas o tráfego necessário.

sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH
sudo ufw enable

Além disso, desative a listagem de diretórios no Nginx. Isso impede que invasores explorem arquivos não intencionais expostos na raiz do site.

autoindex off;

Considere instalar o Fail2Ban para bloquear tentativas repetidas de login fallhas e ataques de força bruta:

sudo apt install fail2ban -y
sudo systemctl enable fail2ban

9. Validação Final e DNS

Antes de mudar os DNS, teste o site usando o IP público da nova VPS. No seu computador local, edite o arquivo /etc/hosts (ou C:\Windows\System32\drivers\etc\hosts) para apontar o domínio para o novo IP:

192.0.2.1 novo-dominio.com www.novo-dominio.com

Verifique se:

  • O SSL/TLS está funcionando corretamente (instale certificados Let's Encrypt com Certbot).
  • Todos os plugins essenciais estão ativos e atualizados.
  • O cache está sendo servido (verifique cabeçalhos HTTP como X-LiteSpeed-Cache: hit ou X-Powered-By: PHP/... se configurado).

Uma vez validada a integridade do site e o funcionamento das transações no WooCommerce, atualize os registros DNS no seu registrador de domínios. Aumente a TTL (Time To Live) para um valor baixo (ex: 300 segundos) dias antes da migração para acelerar a propagação.

10. Pós-Migração e Monitoramento

A migração não termina quando o site está no ar. Monitore os logs de erro (/var/log/nginx/error.log ou /usr/local/lsws/YourSite/logs/error.log) nas primeiras 24 horas. Erros 500 internos geralmente indicam problemas de permissão ou falhas na conexão com o banco de dados.

Se você migrou um site Multisite, verifique especialmente a configuração do .htaccess (no Apache) ou as regras de rewrite no Nginx/OpenLiteSpeed, pois elas exigem parâmetros específicos para subdomínios e subdiretórios.

Por fim, configure backups automatizados na nova VPS. Não dependa apenas do backup feito durante a migração. Utilize scripts Cron ou ferramentas como BorgBackup ou Restic para enviar cópias diárias para um armazenamento externo (S3, Backblaze B2), garantindo que sua infraestrutura esteja pronta para recuperação de desastres.

Ao seguir estes passos, você não apenas moveu seu site, mas o elevou a um patamar superior de performance e segurança, tirando proveito total dos recursos dedicados da sua nova VPS.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000