Suporte pago / hora técnica

Caso tenha dificuldades de migrar você mesmo seu site Joomla e já não tiver seu profissional de confiança, saiba um pouco mais sobre quem eu sou e então entre em contato.

Este tutorial é relativamente simples, mas não raro é solicitado por novatos (e não tão novatos) em fórums e afins. O que vou escrever aqui é dar mais de um meio para você que quer realizar a migração de um Joomla entre servidores, quer seja entre servidores Web, quer seja fazer o upload entre servidor local para o servidor Web, possa fazê-lo sem problemas. Outro ponto sobre este tutorial, é que vou apresentar diversos caminhos e, como talvez você já tenha percebido pelo meno blog, em geral eu prefiro apresentar soluções que fazem você saber melhor o que está fazendo, uma relação mais intima com o seu servidor, em detrimento do uso de extensões.

A ideia geral de uma migração entre servidores Joomla

O muito básico entre migração de servidores para o CMS Joomla é que há certas etapas a serem seguidas:

  1. Migração de arquivos;
  2. Migração de banco de dados;
  3. Configuração do Joomla no novo host;
  4. Configuração de DNS.

Outro ponto marcante é que há uma diferença entre migrar um site pequeno, e migrar um site grande. Sites pequenos são mais simples. Agora, sites com algumas centenas de megas de conteúdo, ou até mesmo uma base de dados com algumas centenas ou milhares de artigos, tem que serem feitas com mais cuidado, até porque podem aparecer alguns erros simples.

Migração de arquivos - Modo via SSH em linha de comando (o mais rápido, eficiente, prático, e serve também para migrações com GBs de tamanho)

Este método exige que seu host tenha libere acesso SSH. Se seu host não libera isso, eu aconselho a procurar um host que libere. Em geral hosts brasileiros adoram complicar com esse tipo de acesso, e não é por acaso: ele dá muita liberade ao usuário de realizar tarefas no servidor, e servidores que não são bem configurados poderiam abrir brechas de segurança grandes ao dar essa liberdade extra.

Caso você não tenha, use um programa para poder executar comandos no seu servidor.

Segundo passo. Usuários do programa Putty vão perceber que como já digitaram o host na tela inicial, não vai ser necessário, e basta só adicionar seu nome de usuário e senha. Usuários linux não precisam deste programa, visto que qualquer terminal que acessem aceita esse tipo de protocolo, e podem acessar da forma como explico em SSH. Caso não sabia, apreenda um pouco mais sobre comandos básicos, como o CD, LS, MKDIR, CP, MV, RM e TAR.

Do host de origem

O primeiro passo é comprimir os arquivos com o comando tar. Você já deve ter se autenticado via SSH, e ir até o diretório aonde quer fazer a compactação.

#Autentique-se no seu host
pwd
#resposta tipica: /home/nomedomeuusuario/

#para compactar como tar.gz
tar -cfx /pastaaondeestaoosarquivos/* nomedomeuarquivodebackup.tar.gz

Após isso, você deve transferir esse arquivo para seu outro host. É possível fazer isso via SCP, WGET, que também usei no artigo de como atualizar Joomla entre versões do mesmo grupo de modo rápido, caso o arquivo de backup esteja acessível via web, ou então via seu programa de FTP preferido, de modo mais visual.

Caso seu host de origem seja localhost, e você esteja usando uma máquina windows, pode usar um programa como o IZarc para compactar no formato tar.gz.

No host destino

Depois de transferir o Joomla para o seu host, use esses comandos para descomprimir

#Vá até o diretório aonde quer descompactar o arquivo. Atenção: se fez do
#mesmo modo como explicado no passo anterior ele vai descompactar exatamente
#no diretório aonde voce está. Isso depende de como você compactou.

#exemlos de como descompactar de diversos tipos de arquivos de origem

#tar.gz:
tar -vzxf nomedoarquivo.tar.gz

#zip:
unzip nomedoarquivo.zip

#tar:
tar -xvf nomedoarquivo.tar

#bz2:
bunzip nomedoarquivo.bz2

#tar.bz2:
tar -jxvf nomedoarquivo.tar.bz2
Pronto! Se fez esses passos certos, você migrou os arquivos do seu Joomla. Basta agora que escolha uma forma de migrar o banco de dados.

Migração de arquivos - Modo via SSH, via WinSCP (serve também para migrações com GBs de tamanho)

Se você quer fazer o mesmo que o passo anterior, porém não tem intimidade com linha de comando, se seu host suporta acesso SSH, você pode usar o programa WinSCP, e, em vez de configurar para acesso FTP ou SFTP, você o configura para acesso SCP.

Ao clicar com o botão direito do mouse em uma pasta ou arquivo, verá que aparece opções para compactar ou descompactar. Compate no host de origem, transfira para o host destino, e use a função descompactar. Pronto! Está feito! E se você está se perguntando por que outros aplicativos FTP não tem essa função prática, é porque o protocolo de acesso deles é outro, e realmente não permite isso.

Outra dica prática sobre esse programa, é que pelo atalho Ctrl + T você abre um terminal de comando, e pode executar comandos como os anterior como se estivesse no putty (ou quase isso).

Telas de exemplo:

WinSCP - Comando de Comapctar
WinSCP - Comando de descompactar
WinSCP - Prompt de comando SSH

 

Migração de arquivos - Modo via painel administrativo do seu host

Do host de origem

Acesse o painel administrativo do seu host. Em geral, eles tem uma opção de compactar arquivos, normalmente no formato .zip. Se houver uma forma de compactação diferente, prefira em especial .tar.gz ou .tar.bz2; formato .zip é um dos piores, pois além de compactar pouco, tende a corromper em caso de aquivos maiores.

Caso seu host de origem seja localhost, e você esteja usando uma máquina windows, pode usar um programa como o IZarc para compactar no formato tar.gz, ou então via zip mesmo com qualquer outro utilitário.

No host destino

Depois de transferir para seu novo host o aquivo, acesse painel administrativo que você tem e use a função para descompactar no servidor.

Migração de arquivos - O pior modo possível e imaginável

Explico o motivo deste título: transferir milhares de arquivos, mesmo se pequenos, via FTP ou SFTP, além de demorar tende a ter uma chance razoável de corromper algum arquivo. Não raro mais tarde você poderá aparecer em um fórum reclamando que está tendo um erro, e que esse erro chega a ser tão bizarro que nem mesmo googlando encontra-se referência de uma solução pra ele. Evite realmente esse método, ou pelo menos esteja ciente de que, caso encontre algum problema muito estranho mais para frente, procure fazer novamente o processo de transferência de arquivo para ver se o problema não desaparece.

Do host de origem

Acesse via seu programa de FTP a raiz do site Joomla. Selecione todos os arquivos, e faça download para uma pasta do seu computador local.

Caso seu computador local já seja o host. esse passo já esta, obviamente, feito.

No host destino

Acesse via seu programa de FTP a raiz do site Joomla. Selecione todos os arquivos locais, e mande fazer o upload de todos eles, um a um. Fique estremamente atento a arquivos que, por algum problema, não são transferidos. Caso isso aconteça, e provavelmente vai acontecer com alguma frequência, reenvie os arquivos que apresentaram erro na transferência.

Migração de arquivos e do banco de dados - Componentes de backups Joomla

Existe um componente, o Akeeba backup, que serve para fazer backups e pode ser usado para migração. Neste tutorial, não vou explicar sobre como usar ele, porém fica aqui também a ideia de que é possivel fazer via ele.

Migração de banco de dados - mysqldump (para bancos realmente grandes)

Este método é aconselhado em casos que você tem um banco de dados realmente grande, e não pode ser feito via PHPMyAdmin. Você não precisa usar esse método caso seu banco não se encaixe nesse perfil, e então usar o método seguinte, que é tão rápido quanto para a maioria absoluta dos casos.

Do host de origem

Tanto para fazer o backup, como para fazer a restauração dos dados, via prompt de comando, já autenticado via SSH, vá em uma pasta qualquer aonde gostaria de ter o seu backup gravado. e digite para fazer o backup

#gerar backup
mysqldump --user=USUARIODOMYSQL --password=SENHADOMYSQL --databases DB_NOMEDOBANCODEDADOS > MEUBACKUP.sql

#gerar backup, mesmo método, porém porém com abreviacoes
mysqldump -u USUARIODOMYSQL -pSENHADOMYSQL DB_NOMEDOBANCODEDADOS >MEUBACKUP.sql

No host destino

Para restaurar, esteja no mesmo lugar aonde o arquivo de backup está no host de destino, e realize o comando>

#restaurar backup
mysql --verbose --user=USUARIODOMYSQL --password=SENHADOMYSQL DB_NOMEDOBANCODEDADOS < MEUBACKUP.sql

#restaurar backup, mesmo método, porém com abreviações
mysql -u USUARIODOMYSQL -pSENHADOMYSQL DB_NOMEDOBANCODEDADOS < MEUBACKUP.sql

Saiba mais sobre o mysqldump no manual de referência do MySQL.

Migração de banco de dados - PHYMyAdmin (para absoluta maioria dos casos)

Do host de origem

Toda instalação PHP necessariamente vem com um painel, chamado de PHPMyAdmin. No caso de hosts externos, caso já não saiba, pergunte o endereço de acesso ao PHYMyAdmin destes hosts. Caso você esteja com o site em seu computador local, em geral o modo de acesso é via http://localhost/phpmyadmin.

Via PHPMyAdmin, escolha o banco de dados, e vá em export. Deixe todas as tabelas selecionadas marcadas, ou então desmarque, se você estiver certo do que está fazendo. Há opção de exportar em formato SQL plano, zipado, ou então de modo que o próprio navegador exiba na tela os dados do banco de dados, sendo que essa ultima opção só deveria ser escolhida se o seu banco de dados for pequeno.

Caso escolha para exibir em tela, copie e cole para um editor de texto os dados informados. Atenção! Tome cuidado para qual editor você vai colar!. Recomendo usar o Notepad++. Caso mais tarde, ao acessar o site destino, você perceba que todos os acentos estão errados, é um erro comum que acontece justamente nessa etapa, pois na hora de copiar ou de colar, o editor selecionado não está com o charset certo, e acaba transferindo para o host destino os acentos de forma errada. E nada impede que você copie o texto de PHPMyAdmin de origem direto para o PHPMyAdmin do destino.

Telas de exemplo:

PHPMyAdmin - Exportar dados
PHPMyAdmin - tipos de exportação

No host destino

Acesse o PHPMyAdmin do seu host destino, e selecione uma base de dados para a qual queira transferir.

Caso você no hos te origem tenha gerado um arquivo, use a opção Importar (import) e selecione esse arquivo, e envie.

Caso você no host de origem tenha apenas copiado o conteúdo, use a opção de Executar comando SQL.

Telas de exemplo:

PHPMyAdmin - IImportar texto plano
PHPMyAdmin - importar arquivo

Configuração do Joomla no novo host

Realizada a transferência dos arquivos e do banco de dados para o novo host. na raiz do seu site Joomla, há um arquivo de nome configuration.php. Abra ele e atente a essas variáveis:

Joomla 1.5

  public $host = 'localhost';
  public $user = 'usuariodeacessoaobancodedados';
  public $password = 'senhadobancodedados';
  public $db = 'db_nomedobancodedados';
    
  public $log_path = '/home/usuario/pastadojoomla/logs';
  public $tmp_path = '/home/usuario/pastadojoomla/tmp';

Joomla 1.6


  var $log_path = '/home/usuario/pastadojoomla/logs';
  var $tmp_path = '/home/usuario/pastadojoomla/tmp';

  var $host = 'localhost';
  var $user = 'usuariodeacessoaobancodedados';
  var $db = 'db_nomedobancodedados';
    
  var $password = 'senhadobancodedados';

Explicação de alteração de cada linha

$host - Este é o local (host) aonde fica hospedado o banco de dados. Para boa parte dos casos, é simplesmente 'localhost', porém pode ser um domínio, ou um número de IP.
$user - é o nome do usuário que acessa o banco de dados.
$password - é a senha do usuário que acessa o banco de dados.
$db - nome do banco de dados.
$log_path - o caminho (path) de instalação do seu Joomla, mais '/log' ao final
$tmp_path - o caminho (path) de instalação do seu Joomla, mas '/tmp' ao final. É nessa pasta aonde ficam arquivos temporários do Joomla, e um indício muito direto de que este caminho está errado, é quando mesmo com permissões de escrita em diretórios estando corretas, você não consegue instalar extensões no seu servidor após ter migrado.

Atenção! Caso você esteja migrando entre servidores web, é possível que ao mover os arquivos do Joomla entre os servidores, ele esteja funcionando imediatamente, pois ele acessara os dados do banco de dados anterior, e acreditará que o $tmp_path e o $log_path são do Joomla do host de origem. Mesmo assim, arrume as configurações! Pois não estará usando o banco de dados novo, e provavelmente vai ter sérios problemas ao não poder instalar novas extensões.

Configuração de DNS

Caso sua migração tenha sido entre hosts diferentes, você terá que entrar em contato com o provedor do domínio do seu site, e informar os DNSs do seu novo host, no caso de ter trocado de host e os IPs do DNS serem diferentes.

Se seu domínio termina com .br, você certamente teria que fazer isso junto ao site http://registro.br. Caso seja um domínio internacional, terá de descobrir quem é que lhe forneceu ele e informar as novas configurações.

comments powered by Disqus