Pular para o conteúdo

Migrando um site para um VPS: guia passo a passo

Atualizado em 6 min de leituraPela equipe do DNSPeek

Para mover um site para um VPS, prepare primeiro o servidor: atualizações, chaves SSH, um firewall e o mesmo stack web em que o site roda hoje. Copie os arquivos e o banco de dados, configure um virtual host para o seu domínio e teste o site no IP do VPS com o domínio real antes de alterar o DNS. Faça a troca com um TTL curto, emita o certificado e deixe o e-mail em um provedor dedicado, e não no VPS.

O que muda quando você sai da hospedagem compartilhada

Na hospedagem compartilhada, o provedor cuida do servidor web, do PHP, do banco de dados, do e-mail, dos backups e das atualizações de segurança. Em um VPS não gerenciado, tudo isso passa a ser seu. A vantagem é o controle e recursos previsíveis; o custo é que nada está configurado até você configurar. Planeje a mudança como dois projetos: montar o servidor e depois mover o site para ele.

Hospedagem compartilhada comparada com um VPS não gerenciado
TarefaHospedagem compartilhadaVPS não gerenciado
Atualizações de segurançaA hospedagemVocê (ou atualizações automáticas)
Servidor web, PHP, banco de dadosPré-instaladosVocê instala e ajusta
Hospedagem de e-mailNormalmente incluídaMelhor em um provedor dedicado
BackupsMuitas vezes incluídosVocê configura, de preferência fora do servidor
CertificadosAutomáticosCertbot ou um cliente ACME semelhante

Prepare o servidor

Comece com uma versão do Linux com suporte. Os comandos abaixo são para Ubuntu ou Debian; adapte os nomes dos pacotes para outras distribuições.

Terminal (no VPS)
# Updates and a non-root user with sudo
apt update && apt upgrade -y
adduser deploy && usermod -aG sudo deploy

# Firewall: SSH, HTTP and HTTPS only
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

# Automatic security updates
apt install -y unattended-upgrades

Entre com uma chave SSH e depois desative o login por senha no SSH. Instale o stack de que o site precisa, por exemplo nginx ou Apache, PHP-FPM com a mesma versão e as mesmas extensões da hospedagem antiga, e MySQL ou MariaDB. Usar a mesma versão do PHP evita surpresas; atualize-a depois, como uma etapa separada.

Mova o site passo a passo

  1. Etapa 1: Reduza o TTL

    Defina os registros A com TTL de 300 segundos um dia antes da troca. Confira o valor atual com o verificador de TTL.

  2. Etapa 2: Proteja o VPS e instale o stack

    Aplique as atualizações, crie um usuário com sudo, ative as chaves SSH e um firewall e depois instale as versões de servidor web, PHP e banco de dados de que o site precisa.

  3. Etapa 3: Copie os arquivos

    Copie o site com rsync -avz por SSH, ou baixe um arquivo compactado da hospedagem antiga e envie-o. Defina como dono o usuário do servidor web.

  4. Etapa 4: Importe o banco de dados

    Exporte-o na hospedagem antiga, crie um banco de dados e um usuário no VPS, importe o dump e atualize a configuração da aplicação com as novas credenciais.

  5. Etapa 5: Configure o virtual host

    Adicione um bloco server para o domínio e o www, traduza as regras do .htaccess, se houver, e recarregue o servidor web.

  6. Etapa 6: Teste no IP do VPS antes do DNS

    Crie um link de prévia com o domínio e o IP do VPS e use o modo Somente HTTP ou Ignorar verificação até instalar um certificado. Navegue, envie formulários e faça login.

  7. Etapa 7: Execute um relatório de QA

    Rastreie a prévia com um relatório de QA para encontrar páginas padrão do servidor web, erros 502 do PHP-FPM, regras de reescrita faltando e erros de PHP.

  8. Etapa 8: Troque o DNS e emita o certificado

    Faça uma sincronização final de arquivos e banco de dados, aponte os registros A para o VPS, emita o certificado e acompanhe a propagação com o verificador de propagação de DNS.

Configure o virtual host

O servidor web escolhe o site pelo nome de domínio da requisição. Configure um bloco server para example.com e para www.example.com:

/etc/nginx/sites-available/example.com
server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com/public;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }
}

Se o site dependia de regras do .htaccess na hospedagem antiga, traduza-as para o nginx: URLs amigáveis, redirecionamentos e restrições de acesso não vêm sozinhos. Ajuste o caminho do socket do PHP-FPM para a versão que você instalou. Teste a configuração com nginx -t antes de cada reload e confira as configurações do pool do PHP-FPM: o número padrão de processos é pequeno, e um site movimentado que fica sem processos responde com erros 502 ou 504.

HTTPS antes da troca

O desafio HTTP comum do Let’s Encrypt só funciona quando o domínio já aponta para o VPS. Você tem três opções: emitir o certificado logo depois da troca (alguns minutos em HTTP simples ou com um certificado autoassinado), usar o desafio DNS, que funciona antes da troca se o seu provedor de DNS tiver uma API, ou copiar o certificado existente da hospedagem antiga.

Para testar, um VPS novo sem nenhum certificado funciona com uma prévia do DNSPeek no modo Somente HTTP: os visitantes continuam abrindo a prévia por HTTPS, e o DNSPeek fala HTTP simples com o servidor. Faça antes a aplicação confiar no HTTPS do proxy, senão um redirecionamento que força HTTPS vai entrar em loop. A documentação mostra as configurações de PHP e nginx: Origem sem SSL.

E-mail: não leve para o VPS

Se a hospedagem compartilhada antiga também cuidava do seu e-mail, a mudança é um bom momento para separar as coisas. Manter bem um servidor de e-mail (filtro de spam, reputação, DKIM, listas de bloqueio) é um trabalho por si só, e muitos provedores de nuvem bloqueiam a porta 25 de saída por padrão. Mova as caixas de e-mail para um provedor de e-mail dedicado, atualize MX, SPF, DKIM e DMARC e deixe o site enviar e-mails transacionais por um serviço SMTP autenticado. Verifique os registros com a consulta de registros MX, o verificador de SPF e o verificador de DMARC.

Depois da troca

  • Emita ou verifique o certificado e confira com o verificador de SSL.
  • Configure backups que saiam do servidor: dumps do banco de dados e arquivos, para um armazenamento de objetos ou outra máquina, e teste uma restauração.
  • Adicione um monitoramento básico: verificações de disponibilidade, espaço em disco e expiração do certificado.
  • Recrie as tarefas cron da hospedagem antiga.
  • Siga o checklist pós-mudança.

Checklist de migração para VPS

VPS

  • Atualizações aplicadas, atualizações automáticas ativadas
  • Usuário sudo que não é root, chaves SSH, login por senha desativado
  • Firewall permite só SSH, HTTP e HTTPS
  • Mesma versão do PHP e mesmas extensões da hospedagem antiga
  • Arquivos copiados, dono e permissões definidos
  • Banco de dados importado, configuração da aplicação atualizada
  • Virtual host para o domínio e o www; regras de reescrita traduzidas
  • Site testado no IP do VPS com um link de prévia
  • Relatório de QA sem problemas
  • E-mail movido para um provedor dedicado; MX, SPF, DKIM e DMARC configurados
  • Sincronização final, DNS trocado, certificado emitido
  • Backups fora do servidor e uma restauração testada
  • Monitoramento de disponibilidade e de disco funcionando

Perguntas frequentes

Um VPS é mais rápido que hospedagem compartilhada?

Muitas vezes sim, porque a CPU e a memória ficam reservadas para você em vez de divididas com vários outros sites. Mesmo assim, a velocidade depende da configuração: as configurações do PHP-FPM, o cache e o banco de dados importam tanto quanto o hardware.

Consigo um certificado SSL em um VPS antes de alterar o DNS?

Sim, com um desafio DNS se o seu provedor de DNS suportar, ou copiando o certificado existente da hospedagem antiga. O desafio HTTP padrão só funciona depois que o domínio aponta para o VPS.

Como testar meu site em um VPS antes de apontar o domínio para ele?

Solicite o site ao IP do VPS usando o domínio real. Um link de prévia faz isso em qualquer navegador e pode ser compartilhado; uma entrada no arquivo hosts faz isso no seu próprio computador. Abrir só o IP normalmente mostra a página padrão do servidor web.

Devo hospedar o e-mail no meu VPS?

Normalmente não. Servidores de e-mail exigem cuidado constante com filtro de spam, reputação e listas de bloqueio, e muitos provedores de nuvem bloqueiam a porta 25 de saída. Um provedor de e-mail dedicado mais um serviço SMTP para o site é mais simples e confiável.

Qual é o erro mais comum ao migrar para um VPS?

Esquecer o trabalho que a hospedagem antiga fazia sem ninguém perceber: backups, atualizações de segurança, e-mail e tarefas cron. Liste tudo o que a hospedagem antiga oferecia antes da mudança e decida quem cuida de cada parte no VPS.

Moving a site? Use the migration checklist

Every step from lowering the TTL to checking email after the switch, on one printable page. With a free account you keep your preview links in one place and run a QA report of the site on the new server.

Verifique o novo servidor antes da troca

O DNSPeek oferece um link HTTPS que mostra seu site a partir do novo servidor enquanto o DNS ainda aponta para o antigo. Abra-o em qualquer dispositivo, compartilhe-o com sua equipe ou seu cliente e execute um rastreamento de QA no mesmo link.

Criar um link de prévia grátis