Migrar site do cPanel para Plesk sem perder dados

16 min de leitura · · cPanel, Plesk, migração, hospedagem, AviraHost · 0

Migrar site do cPanel para o Plesk é o processo de transferir arquivos, bancos de dados, emails e configurações DNS de um servidor gerenciado pelo cPanel para um ambiente Plesk, preservando todos os dados. Para executar a migração sem perda de dados, siga estes passos:

  1. Reduza o TTL dos registros DNS para 300 segundos com antecedência
  2. Exporte o banco de dados MySQL com mysqldump no servidor cPanel
  3. Transfira os arquivos do site via rsync ou SFTP para o Plesk
  4. Importe o banco de dados e recrie o usuário no Plesk
  5. Migre as caixas de email copiando os arquivos Maildir
  6. Atualize os registros DNS (A, MX, SPF, DKIM, DMARC) e valide o ambiente

Pré-requisitos para migrar do cPanel para o Plesk

  • Acesso root SSH ao servidor cPanel de origem e ao servidor Plesk de destino
  • Plesk Obsidian 18.x ou superior instalado no servidor de destino (AlmaLinux 9 ou Rocky Linux 9 recomendado)
  • cPanel/WHM versão 110 ou superior no servidor de origem
  • MySQL 8.0 ou MariaDB 10.6+ em ambos os servidores
  • Espaço em disco no destino equivalente a pelo menos 1,5x o tamanho total dos dados de origem
  • Cliente SSH como openssh-client e utilitários rsync, mysqldump e imapsync disponíveis
  • TTL dos registros DNS reduzido para 300 segundos com pelo menos 24 horas de antecedência
  • Backup completo do servidor cPanel antes de iniciar qualquer etapa

Etapa 1: preparar o ambiente Plesk e reduzir o TTL do DNS

Antes de iniciar a transferência de dados, a preparação do ambiente Plesk é fundamental para garantir que a migração do cPanel ocorra sem interrupções. Acesse o painel Plesk, crie a assinatura (subscription) para o domínio que será migrado e configure o plano de hospedagem com os recursos equivalentes ao ambiente de origem.

No servidor cPanel, acesse o gerenciador de DNS (WHM > DNS Zone Editor ou o painel do registrador) e reduza o TTL de todos os registros do domínio para 300 segundos. Isso garante que, ao alterar os IPs, a propagação ocorra em poucos minutos em vez de horas.

; Exemplo de zona DNS com TTL reduzido
$TTL 300
dominio.com.br.  IN  A     203.0.113.10
dominio.com.br.  IN  MX 10 mail.dominio.com.br.
mail             IN  A     203.0.113.10

Aguarde pelo menos o tempo do TTL anterior (geralmente 3600 segundos) antes de prosseguir, para garantir que os resolvers em cache já adotaram o novo TTL reduzido. Consulte o artigo Como Configurar DNS Personalizado para Seu Domínio na AviraHost para detalhes sobre gerenciamento de zonas DNS.

Etapa 2: exportar o banco de dados MySQL do cPanel

A exportação consistente do banco de dados é a etapa mais crítica na transferência de dados entre painéis de hospedagem. No servidor cPanel, conecte-se via SSH como root e execute o mysqldump com as flags adequadas para garantir integridade transacional.

Atenção: o comando abaixo bloqueia leituras temporariamente em tabelas MyISAM. Para bancos InnoDB, a flag --single-transaction evita locks. Certifique-se de que nenhuma escrita crítica está ocorrendo durante o dump.

mysqldump -u root -p \
  --single-transaction \
  --routines \
  --triggers \
  --default-character-set=utf8mb4 \
  nome_do_banco > /root/backup_banco.sql

Output esperado ao concluir sem erros:

-- Dump completed on 2024-11-15 14:32:07

Verifique o tamanho do arquivo gerado para confirmar que o dump não está vazio:

ls -lh /root/backup_banco.sql
-rw-r--r-- 1 root root 48M Nov 15 14:32 /root/backup_banco.sql

Para bancos com múltiplos schemas, repita o processo para cada banco de dados associado ao domínio. Você pode listar todos os bancos do usuário cPanel com:

mysql -u root -p -e "SHOW DATABASES LIKE 'usuario_%';"

Consulte também o artigo Conectando remotamente ao MySQL - cPanel para entender a estrutura de usuários e permissões no cPanel antes de exportar.

Etapa 3: transferir arquivos do site via rsync para o Plesk

A sincronização de arquivos entre servidores é mais eficiente com rsync do que com FTP tradicional, pois transfere apenas diferenças e preserva permissões. No servidor cPanel, os arquivos do site ficam em /home/usuario/public_html/. No Plesk, o destino padrão é /var/www/vhosts/dominio.com.br/httpdocs/.

Execute o comando abaixo a partir do servidor Plesk (destino), puxando os arquivos do cPanel (origem):

rsync -avz --progress \
  -e "ssh -p 22" \
  root@IP_CPANEL:/home/usuario/public_html/ \
  /var/www/vhosts/dominio.com.br/httpdocs/
sending incremental file list
./
index.php
wp-config.php
wp-content/uploads/2024/10/imagem.jpg
...
sent 512,345,678 bytes  received 12,345 bytes  8,234,567.89 bytes/sec
total size is 510,000,000  speedup is 1.00

Após a transferência, ajuste as permissões dos arquivos para o usuário do Plesk:

chown -R dominio.com.br:psacln /var/www/vhosts/dominio.com.br/httpdocs/
find /var/www/vhosts/dominio.com.br/httpdocs/ -type d -exec chmod 755 {} \;
find /var/www/vhosts/dominio.com.br/httpdocs/ -type f -exec chmod 644 {} \;

Se preferir usar SFTP com interface gráfica, o FileZilla como software FTP da hospedagem é uma alternativa acessível para transferências manuais de arquivos menores.

Etapa 4: importar o banco de dados no servidor Plesk

Com o dump SQL em mãos, o próximo passo é recriar o banco de dados e o usuário no Plesk, garantindo que o charset seja idêntico ao da origem para evitar problemas de encoding com caracteres especiais do português.

No servidor Plesk, acesse o MySQL como root e execute:

mysql -u root -p
CREATE DATABASE nome_do_banco CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'usuario_banco'@'localhost' IDENTIFIED BY 'senha_segura';
GRANT ALL PRIVILEGES ON nome_do_banco.* TO 'usuario_banco'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Importe o dump gerado anteriormente:

mysql -u root -p nome_do_banco < /root/backup_banco.sql

Verifique se as tabelas foram importadas corretamente:

mysql -u root -p -e "USE nome_do_banco; SHOW TABLES;"
+---------------------------+
| Tables_in_nome_do_banco   |
+---------------------------+
| wp_commentmeta            |
| wp_comments               |
| wp_options                |
| wp_posts                  |
| wp_users                  |
+---------------------------+

Após importar, atualize as credenciais no arquivo de configuração da aplicação. Para WordPress, edite o wp-config.php:

define('DB_NAME', 'nome_do_banco');
define('DB_USER', 'usuario_banco');
define('DB_PASSWORD', 'senha_segura');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');

Etapa 5: migrar emails do cPanel para o Plesk sem perder mensagens

A migração de caixas de email é frequentemente negligenciada, mas é essencial para preservar o histórico de mensagens dos usuários. O cPanel armazena os emails no formato Maildir em /home/usuario/mail/dominio.com.br/caixa/. O Plesk usa um caminho diferente, geralmente /var/qmail/mailnames/dominio.com.br/caixa/Maildir/.

Primeiro, recrie as contas de email no Plesk via painel ou via CLI:

plesk bin mail --create [email protected] -passwd 'senha_email' -mailbox true

Em seguida, copie os arquivos Maildir do cPanel para o Plesk:

rsync -avz --progress \
  -e "ssh -p 22" \
  root@IP_CPANEL:/home/usuario/mail/dominio.com.br/caixa/ \
  /var/qmail/mailnames/dominio.com.br/usuario/Maildir/

Ajuste as permissões para o usuário de email do Plesk:

chown -R popuser:popuser /var/qmail/mailnames/dominio.com.br/usuario/Maildir/

Para validar a integridade antes de alterar o MX, configure um cliente IMAP (Thunderbird, por exemplo) apontando diretamente para o IP do servidor Plesk e confirme que as mensagens aparecem corretamente. Somente após essa validação altere os registros MX.

Etapa 6: atualizar registros DNS e validar o ambiente no Plesk

Com todos os dados migrados e validados no servidor Plesk, chegou o momento de atualizar os registros DNS para apontar para o novo servidor. Esta etapa determina o início do downtime real, que com TTL de 300 segundos fica entre 5 e 30 minutos.

Atualize os seguintes registros no painel do registrador de domínio ou no servidor DNS autoritativo:

  • Registro A: aponte para o IP público do servidor Plesk
  • Registro MX: aponte para o hostname do servidor de email Plesk (ex: mail.dominio.com.br)
  • Registro SPF: atualize para incluir o IP do novo servidor (v=spf1 ip4:NOVO_IP include:_spf.dominio.com.br ~all)
  • Registro DKIM: gere novo par de chaves no Plesk (Mail > DKIM) e publique o registro TXT
  • Registro DMARC: mantenha ou ajuste a política conforme necessário
  • Registros CNAME de subdomínios: atualize cada subdomínio ativo

Após alterar os registros, monitore a propagação com:

watch -n 30 "dig +short dominio.com.br A"
203.0.113.50

Quando o IP retornado for o do servidor Plesk, acesse o site pelo navegador e verifique os logs do Plesk para confirmar que as requisições estão chegando corretamente:

tail -f /var/www/vhosts/dominio.com.br/logs/access_log

Ative o SSL/TLS no Plesk para o domínio (Websites & Domains > SSL/TLS Certificates > Let's Encrypt) e configure o redirecionamento HTTP para HTTPS. Para detalhes sobre esse processo, consulte Como redirecionar um site HTTP para HTTPS.

Usando o Plesk Migrator para automatizar a transferência

O Plesk Migrator é uma extensão oficial que automatiza parte do processo de importação a partir de servidores cPanel ativos, sendo uma alternativa à migração manual para ambientes com muitos domínios. Instale a extensão no servidor Plesk de destino:

plesk bin extension --install panel-migrator

Após a instalação, acesse Extensions > Panel Migrator no Plesk e configure a conexão SSH com o servidor cPanel de origem. O Migrator transfere automaticamente arquivos, bancos de dados e contas de email, mas exige que o servidor cPanel esteja acessível via SSH durante todo o processo.

Atenção: o Plesk Migrator não importa arquivos de backup .tar.gz gerados pelo cPanel via interface gráfica. Ele requer acesso SSH direto ao servidor de origem. Se o servidor cPanel não estiver mais acessível, a migração manual descrita nas etapas anteriores é o caminho correto.

Limitações conhecidas do Plesk Migrator:

  • Não migra configurações personalizadas do Apache/Nginx do cPanel
  • Não transfere cron jobs automaticamente — recrie-os manualmente no Plesk
  • Certificados SSL do cPanel não são transferidos; emita novos via Let's Encrypt no Plesk
  • Regras de .htaccess específicas do cPanel podem precisar de ajuste para o ambiente Plesk

Problemas comuns e como resolver

Sintoma: site exibe erro 500 após migração para o Plesk

Causa: permissões incorretas nos arquivos ou diretórios transferidos via rsync, ou configurações do .htaccess incompatíveis com a versão do Apache no Plesk.
Solução: verifique os logs de erro em /var/www/vhosts/dominio.com.br/logs/error_log. Corrija permissões com find /var/www/vhosts/dominio.com.br/httpdocs/ -type f -exec chmod 644 {} \; e revise o .htaccess para remover diretivas exclusivas do cPanel como suPHP_ConfigPath.

Sintoma: banco de dados importado com caracteres corrompidos (encoding errado)

Causa: o dump foi gerado sem especificar o charset, resultando em conversão incorreta de caracteres especiais do português (ã, ç, é).
Solução: regenere o dump com --default-character-set=utf8mb4 e reimporte. Se o banco já foi importado, execute ALTER DATABASE nome_do_banco CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; e converta as tabelas afetadas individualmente com ALTER TABLE tabela CONVERT TO CHARACTER SET utf8mb4;.

Sintoma: emails não chegam após atualizar o registro MX

Causa: o registro SPF não foi atualizado para incluir o IP do novo servidor Plesk, fazendo com que servidores remotos rejeitem as mensagens como spam ou falha de autenticação.
Solução: verifique o SPF atual com dig TXT dominio.com.br e atualize o registro para incluir o IP do servidor Plesk. Aguarde a propagação e teste com ferramentas como MXToolbox. Confirme também que o DKIM foi gerado e publicado corretamente no Plesk.

Sintoma: cron jobs pararam de funcionar após a migração

Causa: os cron jobs configurados no cPanel não são transferidos automaticamente para o Plesk, nem pelo Plesk Migrator.
Solução: liste os cron jobs do usuário no servidor cPanel com crontab -l -u usuario, copie as entradas e recrie-as no Plesk via Websites & Domains > Scheduled Tasks ou diretamente no crontab do sistema no servidor Plesk.

Perguntas frequentes sobre migrar do cPanel para o Plesk

É possível migrar do cPanel para o Plesk sem downtime?

Sim, é possível minimizar o downtime propagando o DNS somente após validar o ambiente no Plesk. O processo envolve copiar arquivos, banco de dados e emails antes de alterar os registros DNS, mantendo o site antigo ativo durante a transição. O downtime real fica restrito ao tempo de propagação DNS, geralmente entre 5 e 30 minutos com TTL reduzido para 300 segundos.

O Plesk consegue importar backups gerados pelo cPanel?

O Plesk não importa nativamente arquivos .tar.gz gerados pelo cPanel via interface gráfica. A migração recomendada é manual: exportar banco de dados com mysqldump, transferir arquivos via rsync ou SFTP, e recriar contas de email no Plesk. Existe também o Plesk Migrator, uma extensão oficial que automatiza parte do processo a partir de servidores cPanel ativos com acesso SSH disponível.

Como migrar emails do cPanel para o Plesk sem perder mensagens?

Exporte as caixas de email do cPanel copiando diretamente os arquivos Maildir localizados em /home/usuario/mail/. No Plesk, recrie as contas de email e importe os arquivos Maildir para o diretório correspondente em /var/qmail/mailnames/. Confirme a integridade com um cliente IMAP apontando diretamente para o IP do servidor Plesk antes de alterar o registro MX.

Quais registros DNS precisam ser atualizados após migrar do cPanel para o Plesk?

Os registros essenciais são: A (apontando para o IP do novo servidor Plesk), MX (para o servidor de email correto), SPF, DKIM e DMARC (para autenticação de email). Se o domínio usa subdomínios, cada registro CNAME ou A correspondente também deve ser atualizado. Reduza o TTL para 300 segundos antes da migração para acelerar a propagação e minimizar o impacto.

O banco de dados MySQL migrado do cPanel funciona normalmente no Plesk?

Sim, desde que o dump seja gerado com mysqldump incluindo a flag --single-transaction para consistência, e importado no MySQL do servidor Plesk com o mesmo charset (geralmente utf8mb4). Recrie o usuário do banco no Plesk com as mesmas permissões e atualize as credenciais no arquivo de configuração da aplicação, como wp-config.php, .env ou config.php.

Conclusão

  • Reduza o TTL com antecedência: configure o TTL para 300 segundos pelo menos 24 horas antes da migração para garantir propagação rápida no momento da virada.
  • Valide antes de virar o DNS: teste o site, banco de dados e emails apontando diretamente para o IP do servidor Plesk antes de alterar qualquer registro DNS público.
  • Documente e recrie configurações manuais: cron jobs, regras de .htaccess específicas do cPanel e certificados SSL precisam ser recriados manualmente no Plesk após a migração.

Leia também

Precisa de ajuda com migração de cPanel para Plesk?

Migrar entre painéis de hospedagem envolve múltiplas camadas — arquivos, banco de dados, email e DNS — e cada detalhe mal configurado pode resultar em downtime ou perda de dados. A AviraHost oferece planos de hospedagem com suporte técnico especializado para auxiliar em migrações complexas.

Conheça os planos de hospedagem da AviraHost


Esta resposta foi útil?