Como publicar uma loja Magento

Você desenvolveu sua loja em ambiente off-line, está tudo pronto e agora chegou à hora de experimentar em ambiente online e finalmente publicar e divulgar seus produtos. Neste artigo eu abordo um passo a passo de como colocar sua loja online ou mesmo trocar de provedor ou endereço.

Quer criar temas para Magento?

Passo um: deletar os arquivos de cache

O Magento trabalha com arquivos de cache que economizam tempo de processamento do servidor e também as imagens dos produtos são armazenadas em diferentes tamanhos para melhorar o desempenho na internet. Arquivos de cache são gerados independentemente de o Cache estar ligado ou não, você pode deletar esses arquivos e imagens, o Magento irá gerar esses arquivos novamente de forma automática quando a loja for acessada, vamos lá.

  1. Na instalação da sua loja vá em: [sua-loja]/var/cache/ e delete todas as pastas ali dentro,
  2. Vá em [sua-loja]/media/catalog/product/cache/ e apague todo o conteúdo dentro dela,
  3. Você também pode apagar o conteúdo de [sua-loja]/media/catalog/product/swatches caso exista.

Atenção: não apague nenhum conteúdo além desse, caso você não tenha certeza é melhor manter a pasta.

Passo dois compactar e exportar

Agora compacte todos os arquivos da loja em um único arquivo zip, é possível enviar para o servidor todos os arquivos sem compactar, mas será um processo muito mais demorado e sujeito a muitos erros. Enquanto espera a compactação de todos os arquivos exporte seu banco de dados:

  1. Acesse o phpMyAdmin, provavelmente já o acessou no momento de instalação do Magento, o acesso ao ambiente local deve ser este: http://localhost/phpmyadmin
  2. Selecione o banco da sua loja
  3. Clique no link exportar, não é preciso nenhuma configuração especial, basta clicar em exportar e baixar o arquivo.

Passo três: envio ao servidor

Comece pelo banco de dados

  1. Acesse o phpMyAdmin da hospedagem, o endereço varia em cada hospedagem, caso não saiba consulte seu provedor de hospedagem.
  2. Selecione o banco e clique em importar
  3. Confirme o tamanho do seu banco é menor que o tamanho máximo permitido
  4. Clique em selecionar arquivo e escolha o banco que você exportou
  5. Aguarde o termino e verifique se ocorre algum erro

É muito importante esperar até a mensagem de confirmação, este processo pode demorar dependendo do tamanho do seu banco

Agora os arquivos da loja

Caso tenha acesso SSH você pode utilizar qualquer programa de FTP, como o FileZilla, para subir seu arquivo zip e descompactar por comandos via SSH

Caso nem saiba o que é acesso via SSH verifique no painel administrativo da sua hospedagem, geralmente você encontrará uma opção de gerenciar arquivos ou gerenciar FTP para este fim,

Envie o arquivo e descompacte na pasta correta da sua loja

Passo quatro: Ajustes finais

Agora que o banco foi copiado e os arquivos enviados para sua hospedagem é hora de fazer as mudanças para que sua loja funcione corretamente no novo endereço, então faça o seguinte:

  1. No phpMyAdmin onde o banco foi importado procure pela tabela core_config_data
  2. Procure pelos campos web/unsecure/base_url e web/secure/base_url e altere os valores dos campos value desses dois itens para o novo endereço da loja, por exemplo de “http://localhost/loja/” para “http://www.loja.com.br/”
    core_config_data
  3. Os dois campos podem ter o mesmo endereço, ou endereços diferentes caso use protocolo HSS (HTTPS//).
  4. Salve as alterações
  5. Agora no local onde foi descompactada a loja verifique o arquivo local.xml que fica em [sua-loja]/app/etc, este arquivo informa ao sistema onde encontrar o banco de dados, caso tenha utilizado um programa de FTP baixe este arquivo em uma pasta temporária e altere através do bloco de notas, caso esteja utilizando o gerenciador de arquivos da hospedagem, é possível que tenha uma opção edit ou editar.
  6. Procure pelas <tags> e altere o conteúdo de acordo com o seu novo banco de dados, caso tenha dúvidas sobre essa informação procure o suporte da sua hospedagem.
    • Endereço do banco:
      <host><![CDATA[endereço]]></host>
    • Usuário do banco de dados
      <username><![CDATA[usuario_do_banco]]></username>
    • Senha do banco de dados
      <password><![CDATA[senha_do_banco]]></password>
    • Nome do banco de dados
      <dbname><![CDATA[nome_do_banco]]></dbname>

Confira se está tudo certo e acesse o endereço da loja, neste momento sua loja deve funcionar corretamente.

Erros mais comuns na hora de publicar sua loja

Caso apareça algum erro verifique se seguiu corretamente todos os passos, confirme se digitou o endereço da loja corretamente no banco de dados e se os dados do arquivo local.xml apontam corretamente para o banco, alguns dos erros mais comuns na hora de publicar uma loja são:

  • Versão do PHP > verifique se a versão do php da sua hospedagem é compatível com a versão necessária para roda o Magento
  • Versão do MySQL > versões antigas do banco de dados podem apresentar problemas com o Magento
  • Cache > se no momento da transição o cache estava ligado e alguém acessou o site antes das configurações finais isso gera erro na criação do cache e será necessário apagar novamente o conteúdo da pasta var/cache.

Qualquer outro erro consulte um profissional da área.

Com isso você viu como pode ser simples mudar o endereço e o servidor da sua loja Magento, seguindo estes passos a risca será pouco provável que tenha problemas com sua loja, mas lembre-se sempre que é melhor deixar esse processo na mão de profissionais para garantir agilidade e maior segurança de seus dados.

Qualquer dúvida deixe um comentário.

Um abraço.

34 respostas

  1. Olá, gostaria de saber, como posso passar do localhost para um servidor online, ficando igual o localhost, por exemplo: produtos configurados, modificações de layouts, paginas criadas, imagens,etc.???

    Grato

  2. Olá, boa tarde!

    Também tentei migrar do local host para um servidor web, e também da o problema
    na tabela, core_config_data! não aparece os campos para botar url do site!

    Grato

    1. esses campos têm que existir pro site funcionar, só um detalhe, eles não ficam em ordem alfabética.
      já que não estão conseguindo tentem esta solução paliativa: Apague o arquivo local.xml que fica em app/etc, isso vai forçar a reinstalar o Magento.

    1. Não tem como não aparecer, na verdade olha se o php myadmin não está dividindo o conteúdo dessa tabela em várias páginas, esses campos da tabela são essenciais para mostrar todos os links do site, se não existir ou estiver errado o site não abre.
      O que acabou de me ocorrer é que se não ligar o apache rewriter talvez esses dados não fiquem salvos no banco, mas acho pouco provável já que essa informação existe no admin independente dessa opção.

  3. Oi Ronaldo, tudo bem? Fiz tudo como recomendado, mas me deparei com um erro meio estranho, não carregou o CSS nem no front nem back. As permissões de arq estão corretas, não sei o que pode ser… Poderia me ajudar? ta no dominio dmsweb.com.br

  4. olá Ronaldo preciso de ajuda, enviei os arquivos magento de localhost de minha maquina para o servidor e o site nao carregou apresentou o seguinte erro 872889931021 o que pode ser?

    1. olha na pasta var/report o arquivo com essa numeração
      veja se voce deletou a pasta var/cache
      geralmente é erro devido o cache

      1. olhei a pasta var/report e existe o erro assim descrito:
        a:4:{i:0;s:113:”SQLSTATE[HY000] [2002] Can’t connect to local MySQL server through socket ‘http://www.apolicalçados.com.br/’ (2)”;i:1;s:2472:”#0 /home/apoli437/public_html/lib/Zend/Db/Adapter/Pdo/Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect()
        #1 /home/apoli437/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(320): Zend_Db_Adapter_Pdo_Mysql->_connect()
        #2 /home/apoli437/public_html/lib/Zend/Db/Adapter/Abstract.php(459): Varien_Db_Adapter_Pdo_Mysql->_connect()
        #3 /home/apoli437/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query(‘SET NAMES utf8’, Array)
        #4 /home/apoli437/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query(‘SET NAMES utf8’, Array)
        #5 /home/apoli437/public_html/app/code/core/Mage/Core/Model/Resource.php(169): Varien_Db_Adapter_Pdo_Mysql->query(‘SET NAMES utf8’)
        #6 /home/apoli437/public_html/app/code/core/Mage/Core/Model/Resource.php(110): Mage_Core_Model_Resource->_newConnection(‘pdo_mysql’, Object(Mage_Core_Model_Config_Element))
        #7 /home/apoli437/public_html/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(320): Mage_Core_Model_Resource->getConnection(‘core_write’)
        #8 /home/apoli437/public_html/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(350): Mage_Core_Model_Resource_Db_Abstract->_getConnection(‘write’)
        #9 /home/apoli437/public_html/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(335): Mage_Core_Model_Resource_Db_Abstract->_getWriteAdapter()
        #10 /home/apoli437/public_html/app/code/core/Mage/Core/Model/Resource/Cache.php(53): Mage_Core_Model_Resource_Db_Abstract->_getReadAdapter()
        #11 /home/apoli437/public_html/app/code/core/Mage/Core/Model/Cache.php(478): Mage_Core_Model_Resource_Cache->getAllOptions()
        #12 /home/apoli437/public_html/app/code/core/Mage/Core/Model/Cache.php(520): Mage_Core_Model_Cache->_initOptions()
        #13 /home/apoli437/public_html/app/code/core/Mage/Core/Model/App.php(1183): Mage_Core_Model_Cache->canUse(‘config’)
        #14 /home/apoli437/public_html/app/code/core/Mage/Core/Model/Config.php(414): Mage_Core_Model_App->useCache(‘config’)
        #15 /home/apoli437/public_html/app/code/core/Mage/Core/Model/Config.php(294): Mage_Core_Model_Config->_canUseCacheForInit()
        #16 /home/apoli437/public_html/app/code/core/Mage/Core/Model/App.php(413): Mage_Core_Model_Config->loadModulesCache()
        #17 /home/apoli437/public_html/app/code/core/Mage/Core/Model/App.php(343): Mage_Core_Model_App->_initModules()
        #18 /home/apoli437/public_html/app/Mage.php(684): Mage_Core_Model_App->run(Array)
        #19 /home/apoli437/public_html/index.php(87): Mage::run(”, ‘store’)
        #20 {main}”;s:3:”url”;s:1:”/”;s:11:”script_name”;s:10:”/index.php”;}

        1. O erro está na primeira linha (Can’t connect to local MySQL server)
          veja o arquivo app/etc/local.xml
          confira se as informações do banco estão corretas

          1. obrigado pela paciência em me ajudar Ronaldo, fiz as modificações e agora apresenta outro tipo de erro:
            a:5:{i:0;s:94:”Cannot send headers; headers already sent in /home/apoli437/public_html/app/Mage.php, line 767″;i:1;s:1021:”#0 /home/apoli437/public_html/lib/Zend/Controller/Response/Abstract.php(115): Zend_Controller_Response_Abstract->canSendHeaders(true)
            #1 /home/apoli437/public_html/app/code/core/Mage/Core/Model/App.php(1246): Zend_Controller_Response_Abstract->setHeader(‘Content-Type’, ‘text/html; char…’)
            #2 /home/apoli437/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(80): Mage_Core_Model_App->getResponse()
            #3 /home/apoli437/public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(202): Mage_Core_Controller_Varien_Front->getResponse()
            #4 /home/apoli437/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
            #5 /home/apoli437/public_html/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
            #6 /home/apoli437/public_html/app/Mage.php(684): Mage_Core_Model_App->run(Array)
            #7 /home/apoli437/public_html/index.php(87): Mage::run(”, ‘store’)
            #8 {main}”;s:3:”url”;s:1:”/”;s:11:”script_name”;s:10:”/index.php”;s:4:”skin”;s:7:”default”;}

            ressaltando que quando exportei o banco de dados havia originalmente feito o nome de ‘magento_apolicalcados’ e no servidor qdo importei deu um erro tive que fazer o banco de dados com o nome de ‘apoli437_magento_apolicalcados’ nomeado pelo servidor, foi modificado e aceito mas acredito que ainda falta algo para modificar no banco de dados

          2. tenta limpar o cache ou deletar a pasta var/cache, se não der certo refaz a instalação

  5. olá Ronaldo não deu certo após várias tentativas…mas refiz a instalação do magento 1.8 no servidor versão igual de meu site e agora pergunto quais as pastas que devo enviar ? se já tem essa aula me envie o link…obrigado

    1. mova as pastas que você modificou, pode ser também o conteúdo da pasta media que vai conter todas as imagens de produtos

    1. Ainda não tenho um artigo abordando esse tema, sugiro o livro Magento Site Performance Optimization (em inglês) é possível encontrar na versão pdf

  6. Olá, boa Tarde!
    Gostaria de tirar uma duvida,!
    No caso quando mudo a url do produto para outra, o magento cria
    outra url, fazendo o direcionamento 301 automaticamente.
    Em fim, parece que esta criando url duplicadas no site!
    Poderia me orientar dizendo o porque?

    Muito Obrigado

  7. Olá, boa Tarde!
    Gostaria de tirar uma duvida,!
    No caso quando mudo a url do produto para outra, o magento cria
    outra url, fazendo o direcionamento 301 automaticamente.
    Em fim, parece que esta criando url duplicadas no site!
    Poderia me orientar dizendo o porque?

    Muito Obrigado

    1. Bom, o Magento gerencia bem essa parte de redirecionamento, caso tenha algum conflito com um endereço veja no menu Catálogo > Gerenciar reescrita de URL

        1. conteúdo duplicado pode acontecer quando se coloca um produto em várias categorias, então você terá várias urls apontando pra mesma página

    1. no banco de dados, na tabela core_config alterou o endereço da loja
      no arquivo app/etc/local.xml alterou as informações do banco?
      se estiver em outro servidor verifica as permissões das pastas e arquivos

  8. Olá. fiz a instalação e aparece erro ao tentar abrir o link
    SQLSTATE[HY000] [1044] Access denied for user ‘artservi_admin’@’localhost’ to database ‘artservi_artservi’

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.