Magento 1.9 Não é possível acessar o painel de administração!


99

Eu instalei o Magento 1.9 . Estava funcionando bem por uma semana. De repente, ontem, quando tentei fazer login no painel de administração do Magento, digitei usernamee passwordcliquei no botão Login e nada aconteceu. A página é atualizada e é tudo. Nenhum erro ou qualquer outra mensagem.

Se eu inseri um nome de usuário ou senha incorretos, isso mostra erro.

Depois de pesquisar no Google sobre esse problema, fui recomendado para comentar as seguintes linhas:

app \ code \ core \ Mage \ Core \ Model \ Session \ Abstract \ Varien.php

/* to solve login issue */
  /*if (!$cookieParams['httponly']) {
  unset($cookieParams['httponly']);
  if (!$cookieParams['secure']) {
  unset($cookieParams['secure']);
  if (!$cookieParams['domain']) {
  unset($cookieParams['domain']);
  }
  }
  }

if (isset($cookieParams['domain'])) {
  $cookieParams['domain'] = $cookie->getDomain();*/ //I have commented these lines

E, para algumas versões anteriores, foi recommentado no mesmo arquivo.

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

Mesmo depois disso, não consegui entrar no admin. É como era. Alguém enfrentou esse problema? Existe alguma outra solução para esse problema?

(Tentei limpar o cache e a sessão através do ftp).


você poderia limpar o cache / cookie do navegador e tentar novamente?
Alamelu

Copie os arquivos principais app/code/local/Mage/Core..blahblahpara edição, para que o Magento substitua o arquivo principal. Também use git para controle de versão, é uma dádiva de Deus.
Chris K


1
Se você estiver usando o Chrome, pressione F12> Recursos> Cookies> Clique com o botão direito do mouse em seu domínio> Limpar.
rybo111

Respostas:


122

Pare de modificar o código principal assim - ele pode resolver temporariamente um problema, mas pode criar problemas futuros que serão quase impossíveis de rastrear.

Existem vários problemas diferentes que causam o comportamento de login de administrador sem erros que você está vendo, mas todos eles voltam para o Magento sem poder definir ou ler o cookie da sessão. O Magento usa sessões para passar mensagens de erro entre páginas - é por isso que você não vê uma mensagem de erro. O Magento também usa sessões para armazenar o valor "está logado", portanto, não definir sessões também causa o comportamento principal do erro.

As possíveis causas incluem

  • Hora local do computador vs. incompatibilidade de hora do servidor, causando invalidação instantânea de cookies. Verifique se o horário do servidor está correto.

  • Permissões incorretas ativadas var/session, impedindo que os arquivos da sessão sejam salvos

  • Configuração incorreta do banco de dados / redis / outro armazenamento de sessão, impedindo o salvamento dos valores da sessão

  • Um módulo está instanciando sessões cedo , impedindo que os nomes de sessão corretos sejam definidos

  • Você é um desenvolvedor que usa vários URLs e tem vários domínios de cookies

  • Outro desenvolvedor modificou de alguma forma app\code\core\Mage\Core\Model\Session\Abstract\Varien.php, criando um bug difícil de rastrear

  • O domínio do cookie System -> Configuration -> Web -> Session Cookie Managementnão corresponde ao domínio do site real.

  • Você está usando o localhostdomínio como servidor e uma versão do webkit que apresenta problemas / bugs ao definir cookies localhostem algumas situações.

A correção de curto prazo é apenas excluir o cookie do domínio. Isso geralmente é suficiente para resolver o problema. Se persistir, descubra qual dos motivos acima é o motivo do seu erro e tome medidas para solucioná-lo (conserte permissões, etc.)


7
Você pode usar o comando sys: check do n98-magerun para encontrar problemas com o domínio dos cookies e o URL base. magerun.net/quick-tip-find-login-issues-with-syscheck-command
cmuench

1
@ Alan Storm, obrigado pela explicação clara. Eu resolvi meu problema. No meu caso, o motivo da questão é o terceiro.
SIBHI S

4
No meu caso, não havia espaço em disco suficiente no servidor. Portanto, você pode querer adicionar isso como uma possível causa.
Simon

@cmuench Eu executo esse comando e não entendo os resultados: Armazenamento BaseURL inseguro inválido: padrão Nome do host errado configurado. O nome do host deve conter um ponto Store Repositório BaseURL não seguro inválido: francês Nome do host errado configurado. O nome do host deve conter um ponto Store Repositório BaseURL inseguro inválido: sot_eng Nome do host errado configurado. O nome do host deve conter um ponto Store Armazenamento BaseURL não seguro inválido: sot_fra Nome do host errado configurado. O nome do host deve conter um ponto ✔ Domínio do Cookie (seguro) da Loja: padrão OK - Nenhum domínio definido Todos os domínios do Cookie têm a mesma aparência Ok e Nenhum domínio definido
Denisa

@ Denisa Você terá um pouco mais de sorte se tentar fazer isso como uma nova pergunta.
Alan Storm

33

Estou tendo os mesmos sintomas em algumas instalações do Magento (não apenas no 1.9). No meu caso, isso acontece apenas no Chrome. Estou corrigindo isso fazendo login no Firefox / Safari / Opera e alterando 'Usar apenas HTTP' para 'Não' em 'Gerenciamento de cookies de sessão' nas configurações de 'Web'.

Veja a captura de tela do back-end do Magento com configurações de cookies


3
Isso me ajudou a colocar meu ambiente de desenvolvimento em execução no Chrome, mas lembre-se de não usar essas configurações na produção, pois abre toda uma classe de vulnerabilidades de segurança.
Stephen Crosby

onde está a seção Gerenciamento de cookies de sessão?
Aryeh Armon

1
Verifique também o seu domínio de cookies - eu estava desenvolvendo localmente e esse foi o meu problema.
Phil Birnie

Me ajudou muito! Nunca soube que isso só acontece no Chrome. Haha!
jehzlau

4
Para definir Use HTTP onlycomo Nosem acesso ao painel de administração. Você pode iniciar diretamente esta consulta SQL: UPDATE __DATABASE_NAME__. core_config_dataSET value= '0' ONDE core_config_data. path= 'web / cookie / cookie_httponly';
Nolwennig 08/12/2015

11

Eu tive esse problema também. As sessões acabadas não puderam ser gravadas var/session, mesmo que o diretório em si esteja definido 0777. Magento criou arquivos de sessão, mas todos permaneceram zero bytes.

Alterar o armazenamento da sessão de filespara dbo problema resolvido para mim.


isso funciona! Não entendo por que o Magento não grava as sessões e armazena em cache nos arquivos. As permissões estão corretas!
Michelangelo

Se me lembro da minha situação, era porque o disco estava cheio ou que o diretório da sessão tinha muitos arquivos.
precisa saber é o seguinte

Este funciona para mim !!
Ner

No meu caso: Alterar o armazenamento da sessão de db para arquivos resolveu o problema.
Akgola

7
  1. Abra o diretório de instalação do Magento. Localize e abra o arquivo index.php.
  2. Procure por error_reporting (E_ALL | E_STRICT); código.
  3. Comente assim:

    /*error_reporting(E_ALL | E_STRICT);*/

  4. E use o seguinte código:

    error_reporting(E_ALL);

    $_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;

  5. Descomente removendo o sinal #, para que fique assim:

    ini_set('display_errors', 1);

  6. Salve este arquivo e faça o upload no servidor. Recarregue a página do seu site para ver erros.


6

Outro motivo possível: o disco rígido / volume / cota está cheio e, portanto, os dados da sessão não podem ser gravados no disco. Pode parecer improvável, mas aconteceu pela segunda vez comigo e demorou um pouco para descobrir.

Não tenho reputação suficiente para comentar, mas @ Alan Storm, talvez você queira levar isso em sua excelente lista.


6

Recentemente, tive o mesmo problema e um truque simples funcionou para mim. Também é para pessoas que não podem acessar o painel no Google Chrome . Se você pode trabalhar no Mozilla Firefox, faça-o porque acho que esse problema não é persistente no Mozilla Firefox.

Portanto, a solução para o chrome é:

Vá para Sistema-> Configuração-> Web . Expanda a guia Inseguro e Seguro . Altere o URL base para http://127.0.0.1/[Your folder name]se você estiver usando o host local ou o URL do site através do qual você está acessando o frontend. Eu tive que fazer login duas vezes para acessar o Painel, pois quando inseri os detalhes pela primeira vez, ele é atualizado e volta à mesma página que você mencionou como loop.


5

Abra o phpMyAdmin no host e tente uma vez este comando sql.

Execute este SQL:

SET FOREIGN_KEY_CHECKS=0;
UPDATE core_store SET store_id = 0 WHERE code='admin';
UPDATE core_store_group SET group_id = 0 WHERE name='Default';
UPDATE core_website SET website_id = 0 WHERE code='admin';
UPDATE customer_group SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';SET FOREIGN_KEY_CHECKS=1;

Agora o administrador pode fazer login.

Por favor, siga isto:

A página do administrador mostra 404 páginas não encontradas


1
não se esqueça de abrir na janela anônima ou outro navegador para sessões de remoção
Martin

3

Eu tive o mesmo problema e resolvi-o excluindo todos os arquivos em / var / session. Eu acho que é porque muitas sessões no Magento!


3

A Lista de Tempestades de Alarmes está correta e detalhada. Aqui estão alguns casos adicionais.

  1. Em vagrant, verifique também a permissão da var/sessionmáquina host
    (problemas de montagem)
  2. Verifique se seu disco está cheio ou há muitos arquivos em var / session
  3. Executar n98-magerun.phar sys:check(captura problemas, incluindo o domínio dos cookies)
  4. Altere a sessão para o banco de dados editando local.xml. Ele excluirá a maioria dos problemas de permissão usando insidie<global>

    <session_save><![CDATA[db]]></session_save>

Também pode haver variações de extensões de terceiros (extensões de firewall / segurança), por exemplo, https://github.com/paimpozhil/MageFirewall/blob/master/app/code/community/MageFirewall/Firewall/Model/Observer.php#L53 coloca você na lista negra, se você tentar muitas vezes.

Pode acontecer se sua sessão não estiver funcionando originalmente por problemas de permissão, mas continuar falhando mesmo depois de corrigir o problema original

No seu caso particular, fique de olho no admin_session_user_login_successevento, pois a maioria dos módulos de segurança / firewall usa esse evento. Fique de olho especialmente se a variável $_SESSION['admin']for redefinida pelos observadores


2

Também é importante que você tenha uma chave de formulário presente, caso contrário, seu formulário não será processado.

<?php echo $this->getBlockHtml('formkey'); ?>

2

Uma solução simples para esse problema é usar http://127.0.0.1 como nome do host em vez do host local.

Como o problema é que você não pode efetuar login no seu administrador, altere as URLs base seguras e não seguras na tabela do banco de dados: core_config_data

Isso também validará sua base com o sys do n98-magerun: check


2

Se você estiver desenvolvendo localhoste tiver definido ou alterado seu nome de domínio para localhost, atualize core_config_dataos nomes de domínio da tabela do banco de dados para 127.0.0.1. Por exemploUPDATE core_config_data SET value="http://127.0.0.1/magento/" WHERE path="web/unsecure/base_url";


2

Além disso, você pode atualizar a senha no banco de dados se tudo o que estiver acima não funcionar e você precisar de acesso desesperado:

UPDATE admin_user SET password=CONCAT(MD5('qXpassword'), ':qX') WHERE username=‘user’;

substitua as palavras de usuário e senha de acordo com suas necessidades.


2

Primeiro, tente limpar o cache, acho que, e se isso não funcionar, tente fazer o chmod 700 na sua pasta var.


1

Você pode mudar seu navegador pode ser este trabalho para mim. Quando esse erro ocorre, alterei o chrome do navegador para o firefox e ele está funcionando.


0

O mesmo aconteceu comigo há um tempo atrás e meu problema veio da sessão. Eu não tinha espaço em disco suficiente para criar as sessões e o cache var/. Tirei algumas coisas e tudo funcionou depois. Talvez isso ajude alguém.

Felicidades


0

Tente limpar o cache esvaziando as pastas "var / cache" e "var / session", isso resolveu o problema para mim.

Eu também tive que reiniciar o servidor da web depois dele uma vez.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.