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:

[php]

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

[/php]

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

[php]

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

[/php]

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