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.
| Tarefa | Hospedagem compartilhada | VPS não gerenciado |
|---|---|---|
| Atualizações de segurança | A hospedagem | Você (ou atualizações automáticas) |
| Servidor web, PHP, banco de dados | Pré-instalados | Você instala e ajusta |
| Hospedagem de e-mail | Normalmente incluída | Melhor em um provedor dedicado |
| Backups | Muitas vezes incluídos | Você configura, de preferência fora do servidor |
| Certificados | Automáticos | Certbot 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.
# 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-upgradesEntre 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
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.
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.
Etapa 3: Copie os arquivos
Copie o site com
rsync -avzpor SSH, ou baixe um arquivo compactado da hospedagem antiga e envie-o. Defina como dono o usuário do servidor web.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.
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.
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.
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.
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:
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.