Não consigo logar no admin do Magento e não aparece mensagem de erro nenhuma…

Olá galera,

Hoje venho falar de uma questão que já aconteceu várias vezes comigo e gostaria de compartilhar a solução com vocês.

Quem é desenvolvedor Magento e segue as boas práticas de desenvolvimento da plataforma sabe que a primeira coisa a se fazer quando for iniciar um novo projeto é instalar o Magento em seu ambiente de desenvolvimento local.

Perfeito, instalamos o Magento em em nosso local e acessamos ele na URL: http://localhost/magento/. Até então parece tudo tranquilo, mas quando vamos logar no admin colocamos o usuário e senha e ao tentar logar o Magento nos menda para a página de login novamente… sem mensagem de erro… sem logs… sem reports… legal! E agora? O que eu faço?

Acontece que, ao tentar logar no painel administrativo do Magento, o mesmo tenta criar cookies em seu navegador para que sejam utilizados na sessão do usuário, porém o Magento faz uma verificação do domínio para isto e, como localhost não é um domínio válido, o Magento não consegue criar os cookies e consequentemente impede o usuário de logar.

Uma solução temporária para isto é simples:

Como todo desenvolvedor Magento deve saber nunca se deve alterar um arquivo do Core do Magento (a menos que seja para fins de debug de workflow), portanto copie o arquivo de app/code/core/Mage/Core/Model/Session/Abstract/Varien.php para app/code/local/Mage/Core/Model/Session/Abstract/Varien.php e encontre as seguintes linhas:

...
// session cookie params
$cookieParams = array(
    'lifetime' => $cookie->getLifetime(),
    'path'     => $cookie->getPath(),
    'domain'   => $cookie->getConfigDomain(),
    'secure'   => $cookie->isSecure(),
    'httponly' => $cookie->getHttponly()
);
...

Agora, para que você consiga logar, comente as linhas de código, conforme abaixo:

...
// session cookie params
$cookieParams = array(
    'lifetime' => $cookie->getLifetime(),
    'path'     => $cookie->getPath(),
    //'domain'   => $cookie->getConfigDomain(),
    //'secure'   => $cookie->isSecure(),
    //'httponly' => $cookie->getHttponly()
);
...

No Magento Community 1.7.0.2 este bloco de código está entre as linhas 85 e 92.

Lembram-se que eu disse que seria apenas uma solução paleativa para o problema? Pois é, agora a melhor solução para resolver isto e sem alterar qualquer arquivo do Core é utilizar virtual hosts em seu ambiente de desenvolvimento. No meu caso, quando inicio o desenvolvimento de qualquer projeto em Magento sempre cadastro primeiro o virtual host, como por exemplo http://local.magento.com/ ou http://local.minhalojalinda.com.br/.

Sei que estou devendo o término do post da configuração de um ambiente de desenvolvimento local e, assim que possível, eu posto todos os how to’s aqui, ok?

Espero que esta dica faça o cabelo de vocês cair menos 😉

Um abraço e até a próxima!

Tiago Sampaio

13 Comments

  1. Olá! Tiago. No meu caso ele ta gerando o arquivo de erro. O começo do erro é

    a:5:{i:0;s:67:”Mage registry key “_singleton/awall/feed_extensions” already exists”;i:1;s:1741:”#0 /home/mentepol/public_html/descontotche.com.br/site/app/Mage.php(222): Mage::throwException(‘Mage registry k…’)
    #1 /home/mentepol/public_html/descontotche.com.br/site/app/Mage.php(476): Mage::register(‘_singleton/awal…’, false)
    #2 /home/mentepol/public_html/descontotche.com.br/site/app/code/core/Mage/Core/Model/App.php(1316): Mage::getSingleton(‘awall/feed_exte…’)
    #3 /home/mentepol/public_html/descontotche.com.br/site/app/Mage.php(447): Mage_Core_Model_App->dispatchEvent(‘controller_acti…’, Array)
    #4 /home/mentepol/public_html/descontotche.com.br/site/app/code/core/Mage/Core/Controller/Varien/Action.php(528): Mage::dispatchEvent(‘controller_acti…’, Array)
    #5 /home/mentepol/public_html/descontotche.com.br/site/app/code/core/Mage/Adminhtml/Controller/Action.php(160): Mage_Core_Controller_Varien_Action->preDispatch()

    O que pode ser isso? Começo a aparecer depois que desinstalei um modulo. Obrigado!

  2. Meu site em mageno esta hospedado no kinghost e tambem esta assim deves em quando eu tento logar mais mostra a pagina de login novamente esse metodo tambem funciona em sites hospedados?

  3. luiz paulo Reply

    Ola Tiago!
    Depois que instalei um modulo do facebook não consegui mais acessar a pagina de admin, e gerou o mesmo arquivo de erro do Daniel.
    Como resolvo esse problema? Obrigado!

  4. Olá Thiago, tudo beleza?
    Estou utilizando o Community (magento-1.9.1.1-2015-04-30-12-49-08) e a estrutura de pastas é diferente.

    Tentei fazer o mesmo, colocando em: app\code\community\Cm\RedisSession\Model\Varien.php

    mas não deu certo? O que fazer nesse caso? Agradeço

  5. Faltou dizer que precisa remover a vírgula da linha:
    ‘path’ => $cookie->getPath(),
    Ficando assim:
    ‘path’ => $cookie->getPath()

    • Olá Marcos,

      Obrigado por sua colaboração. Isso não é necessário, pois o PHP vai interpretar corretamente com ou sem a vírgula em questão.

      Abraços,

      – Tiago

  6. Edmar Lima Reply

    Olá Tiago,

    Como resolver esse mesmo problema no magento2.

    Aguardo seu retorno.

    Abraços,

    Edmar lima

    • Olá Edmar,

      Normalmente o motivo deste problema são os cookies. Você já tentou acessar o painel administrativo utilizando uma aba anônima?

      Abraços,

      – Tiago

Leave A Reply

Navigate