O phpmyadmin efetua logout após 1440 segundos

134

Na minha caixa de desenvolvimento local do Ubuntu, uso o MySQL e o phpmyadmin para trabalhar com o banco de dados.

Sempre que o phpmyadmin estiver ocioso por 1440 segundos (24 minutos), a sessão expirará. Eu perco meu lugar e tenho que entrar e começar de novo.

Eu tentei mudar o $cfg['LoginCookieValidity'] = 3600 * 9;interior, config.inc.phpmas ele ainda atinge o tempo limite em 1440 segundos.

Reiniciei tudo e limpei o cache do navegador (histórico do Firefox -> Limpar histórico recente -> Cache -> Tudo).

Não sei por que o aumento do tempo limite não entra em vigor. O que estou fazendo de errado?

sandeep
fonte
5
A primeira coisa que me vem à mente é: você reiniciou o servidor da web depois de alterar o config.inc.php?
0xmtn
Sim, eu tinha executado este comando: sudo service mysql restart
sandeep
2
Se você resolveu esse problema, pode postar a solução como resposta aqui? ;)
0xmtn
Para o Ubuntu 18.04, apenas editei o arquivo /usr/share/phpmyadmin/libraries/config.default.php Alteração: $ cfg ['LoginCookieValidity'] = 1440
Ahmed Ismail

Respostas:

199

Acesse PHPMyAdmin no seu navegador

Configurações> Recursos> Alterar o valor da validade do cookie de Login> Salvarinsira a descrição da imagem aqui

NOTA : Você precisará fazer isso por sessão.

Pavnish Yadav
fonte
5
Essa é a solução mais rápida e fácil para esse problema. Deve ser a resposta !!!
Pini Cheyni
14
Não é uma solução permanente. Eu tentei fazer isso, mas depois de um ou dois dias, ele redefine novamente para 1440 segundos.
Rolen Koh
5
Isso funciona apenas para a sessão atual. Até o diz nas configurações.
Richard Duerr 26/09
4
don'f se esqueça de atualizar configuração php.inisession.gc_maxlifetime = SAME_OR_BIGGER_VALUE_AS_PHPMYADMIN
Lukas Liesis
7
FYI: não é a melhor opção. Ele salva na sessão atual apenas
Abdulla Nilam 27/10
70

Adicione esta linha ao /config.inc.php:

$cfg['LoginCookieValidity'] = 36000;

Em /setup/lib/index.lib.php

$cf->getValue('LoginCookieValidity') > 36000;

Se você ainda não possui um arquivo .htaccess para o seu site phpMyAdmin, crie um e adicione a seguinte linha para substituir o tempo limite padrão da sessão do PHP:

php_value session.gc_maxlifetime 36000

Eu não recomendaria alterar esse valor no seu arquivo php.ini principal, pois isso permitirá um tempo limite de sessão ridiculamente longo para todos os seus sites PHP.

fonte: http://www.sitekickr.com/blog/increase-phpmyadmin-timeout/

Phil LaNasa
fonte
1
se eu puder adicionar isso, também mude na linha 698 do config.default.php de $ cfg ['LoginCookieValidity'] = 1440; para $ cfg ['LoginCookieValidity'] = 36000;
mStation
1
em vez de colocar a primeira linha em phpmyadmin/config.inc.phpcolocá-lo em um novo arquivo no diretório phpmyadmin/conf.dpara que ele não será substituído em uma atualização
Zelcon
5
Você também pode estender o gc_maxlifetime adicionando o seguinte ao seu arquivo config.inc.php (normalmente no diretório / etc / phpmyadmin): ini_set ('session.gc_maxlifetime', '36000'); Isso também o localizará no phpmyadmin e não afetará o período da Coleta de Lixo de outros scripts PHP. E, com base na documentação, o arquivo config.inc.php deve ser usado para alterar o comportamento - consulte docs.phpmyadmin.net/en/latest/config.html . Portanto, não se preocupe com a alteração desse arquivo por uma atualização.
precisa saber é o seguinte
1
Eu apenas tentei isso e parece que a etapa 2 não é necessária. Apenas a alteração do arquivo de configuração e a alteração .htaccess.
Andy Mercer
Para o Ubuntu 18.04, o arquivo é/usr/share/phpmyadmin/libraries/config.default.php
Ahmed Ismail
52

Podemos alterar o recurso de sessão de horário do cookie em:

Configurações-> Recursos-> Geral-> Validade do cookie de Login

Encontrei a resposta aqui .. Nenhuma atividade em 1440 segundos; por favor faça login novamente

EDITAR:

Esta solução funcionará apenas para a sessão atual, para alterar permanentemente:

abra config.inc.php no diretório raiz do phpMyAdmin.

pasta wamp: wamp \ apps \ phpmyadmin {version} \ config.inc.php

Ubuntu: / etc / phpmyadmin

adicione esta linha

$cfg['LoginCookieValidity'] = <your_timeout>;

Exemplo

$cfg['LoginCookieValidity'] = '144000';
flashMark
fonte
9
Você precisa alterar o session.gc_maxlifetimephp.ini para um valor maior que o padrão: 1440 também.
M Rostami
5
Esta resposta é muito incompleta e não deve ser o principal candidato a voto. A alteração nas configurações gera o seguinte aviso: "Suas preferências serão salvas apenas para a sessão atual. Armazená-las permanentemente requer armazenamento de configuração do phpMyAdmin."
Fevogit
@fivedogit aqui coloquei uma resposta mais completa, que está funcionando bem em relação a essa resposta.
Mojtaba Rezaeian
Observe que você não pode definir um valor maior que 9223372036854775806 ou isso resultará em um estouro de número inteiro.
egdavid
23

Você pode alterar o recurso de sessão de horário do cookie na interface da web phpmyadmin

Settings->Features->General->Login cookie validity

OU

Se você deseja alterar a 'validade do cookie de login' no arquivo de configuração, abra o arquivo de configuração phpmMyAdmin, config.inc.php no diretório raiz do PHPMyAdmin. (O diretório raiz geralmente é / etc / phpmyadmin /)

Após localizar o config.inc.php, procure a linha abaixo e defina-a com o valor de segundos que você deseja que o phpmyadmin atinja o tempo limite:

$cfg['LoginCookieValidity'] 

ou

Adicione o seguinte:

$cfg[ ' Servers'] [$i] [ ' LoginCookieValidity' ] = <your_new_timeout>;

Por exemplo:

$cfg[ ' Servers'] [$i] [ ' LoginCookieValidity' ] = <3600 * 3 >;

O tempo limite é definido como 3 horas no exemplo acima.

session.gc_maxlifetimepode limitar a validade da sessão e, se a sessão for perdida, o cookie de login também será invalidado. Portanto, podemos precisar definir o session.gc_maxlifetime no php.iniarquivo de configuração (o local do arquivo é / etc / php5 /apache2/php.ini no ubuntu).

session.gc_maxlifetime = 3600 * 3


Documentação do phpMyAdmin no LoginCookieValidity

$ cfg ['LoginCookieValidity']

Tipo: inteiro [número de segundos]
Valor padrão: 1440

Defina quanto tempo um cookie de login é válido. Observe que a opção de configuração do php session.gc_maxlifetime pode limitar a validade da sessão e, se a sessão for perdida, o cookie de login também será invalidado. Portanto, é uma boa ideia definir session.gc_maxlifetime pelo menos para o mesmo valor de $ cfg ['LoginCookieValidity'].

NOTA:

  1. Se seu servidor travou e não pode carregar sua página phpmyadmin, verifique seu log do apache em /var/log/apache2/error.log. Se você entrou PHP Fatal error: Call to a member function get() on a non-object in /path/to/phpmyadmin/libraries/Header.class.phpna linha 135, faça a chmod 644 config.inc.php. isso deve cuidar do erro.
  2. Você vai então receber outra advertência: Your PHP parameter session.gc_maxlifetime is lower that cookie validity configured in phpMyAdmin, because of this, your login will expire sooner than configured in phpMyAdmin.. altere o session.gc_maxlifetime como mencionado acima.
Para sempre
fonte
16

Parece haver uma interface do usuário para alterar as configurações do phpmyadmin Inicie o apache e clique no link a seguir

http://localhost/phpmyadmin/setup/index.php?page=form&formset=Features#tab_Security

Smith
fonte
2
Este link leva à configuração do phpMyAdmin . Alterar as configurações do aplicativo em funcionamento através do script de instalação é um pouco arriscado, você não acha?
Trejder
13

Etapas para fazer isso usando phpMyAdmin settingssem problemas ou requisitos para alterar as configurações no php my.ini ou definir o arquivo .htaccess:

  1. Goto seu phpMyAdmincaminho de instalação (ex. / Usr / share / phpMyAdmin / no meu centos7) e encontrar create_tables.sqlem uma de suas subpastas ( phpMyAdmin/sql/create_tables.sqlem minha versão 4.4.9.) E executar o conteúdo do arquivo inteiro em seu site phpMyAdmin atual de seu navegador web. Isso criará um banco de dados chamadophpmyadmin que pode manter todas as suas opções do phpMyAdmin salvas permanentemente.
  2. Nos arquivos do phpMyAdmin config.inc.php(localizados em / etc / phpMyAdmin / no servidor centos7), encontre a linha comentada $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';e descomente-a (agora o phpMyAdmin usará o banco de dados personalizado que geramos na etapa anterior).
  3. phpMyAdminpara o navegador da web e vá Server >> Settings >> Features >> "Login Cookie Validity"para a imagem descrita por Pavnish e defina o valor desejado. Funciona agora.

Referências : Resposta Niccolas , Armazenamento de configuração PhpMyAdmin , resposta flashMarks

Mojtaba Rezaeian
fonte
Isso não funciona no phpMyAdmin 4.8.3. Tornando o complexo simples novamente. Lembro-me antes desta atualização (eu estava usando 4.4 ou mais) tudo funcionou bem através do Server >> Settings >> Feagtures, como dito aqui. Não mais. O config.inc.php não vem com essa linha
luisfer 15/10
8

Você receberá outro aviso: "Seu parâmetro PHP session.gc_maxlifetime é menor que a validade do cookie configurada no phpMyAdmin; por isso, seu login expirará mais cedo do que o configurado no phpMyAdmin.". Isso faz sentido porque a sessão do php atingirá o tempo limite primeiro. Portanto, precisaremos alterar o arquivo /etc/php.ini.

session.gc_maxlifetime = 43200
Thats 12 hours in seconds. 

Reinicie o servidor apache e pronto!

fonte: http://birdchan.com/home/2011/06/06/phpmyadmin-timeout-after-1440-seconds/

isso funciona para mim! :)

apis17
fonte
7

Você deve reiniciar o apache ou httpd, não o mysqld

sudo service httpd restart

ou

sudo /etc/init.d/apache2 restart
0xmtn
fonte
Agora reiniciei o apache usando o comando ur (por exemplo, sudo /etc/init.d/apache2 restart), mas o phpmyadmin ainda efetua logout após 1440 segundos.
sandeep
1
Você vê o erro " Nenhuma atividade dentro de 1440 segundos; efetue login novamente " ou apenas efetua logout? Se sair, verifique session.gc_maxlifetimeno seu /etc/php.ini, qual é o valor disso?
0xmtn
Sim, eu vejo esta mensagem: "Nenhuma atividade dentro de 1440 segundos; faça login novamente"
sandeep
1
Isso é realmente estranho. Você pode por favor definir session.gc_maxlifetime=3600*9em /etc/php.ini , também e reiniciar o servidor web e tentar novamente? Apenas para uma depuração mais rápida, defina os dois ( session.gc_maxlifetimee $cfg['LoginCookieValidity']) para algo pequeno, por exemplo, 50 (segundos) e reinicie o servidor da Web, limpe o cache do navegador e tente novamente.
0xmtn
Você pode esclarecer como, reiniciar o serviço deve alterar a configuração de alguma coisa?
Trejder
7

Você apenas aumenta o tempo limite da sessão do phpMyAdmin, abra config.inc.php no diretório raiz do phpMyAdmin e adicione esta linha.

do caminho da pasta wamp wamp \ apps \ phpmyadmin4.0.4 \ config.inc.php

$cfg['LoginCookieValidity'] = <your_timeout>;

Exemplo

$cfg['LoginCookieValidity'] = '1440';

Nota: a vida útil curta do cookie é ótima para o servidor de desenvolvimento e não para o servidor de produção.

Ravi Delixan
fonte
7

1) Faça login no phpMyAdmin 2) Na tela inicial, clique em "Mais configurações" (parte inferior central da tela para mim) 3) Clique na guia / botão "Recursos" na parte superior da tela. 4) Por 20 dias, defina a configuração "Validade do cookie de login" como 1728000 5) Aplicar.

php xampp

ekta chauhan
fonte
6

Para definir o cookie permanentemente, você precisa seguir algumas etapas

Ir para-> /etc/phpmyadmin/config.inc.phparquivo

adicione este código

$cfg['LoginCookieValidity'] = <cookie expiration time in seconds > 
Damjan Pavlica
fonte
5

Não está funcionando. A sessão do PHP expirará assim mesmo após 1440 segundos.

Mudança PHP.ininisso também:

session.gc_maxlifetime = 3600

http://www.phpmyadmin.net/documentation/Documentation.html#config

Além disso, de PHP.ini:

Se você estiver usando a opção de subdiretório para armazenar arquivos de sessão

; (consulte session.save_path acima), a coleta de lixo não

; acontecer automaticamente. Você precisará fazer seu próprio lixo

; coleção através de um script de shell, entrada cron ou algum outro método.

; Por exemplo, o script a seguir seria o equivalente a

; configurando session.gc_maxlifetime para 1440 (1440 segundos = 24 minutos):

; cd / caminho / para / sessões; encontre -cmin +24 | xargs rm

intec infosys
fonte
5

mudança no arquivo php.in de wampicon / php / php

session.gc_maxlifetime = 1440

para

session.gc_maxlifetime = 43200
user3244260
fonte
4

Se o parâmetro $cfg['LoginCookieValidity']não estiver entrando em vigor no config.inc.phparquivo, tente desabilitar o session.gc_maxlifetimearquivo php.ini colocando um ponto-e-vírgula à esquerda desta maneira:

; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
; http://php.net/session.gc-maxlifetime
; session.gc_maxlifetime = 1440

Ou tente desativar os dois $cfg['LoginCookieValidity']e session.gc_maxlifetime = 1440comentando os dois.

Então, o phpMyAdmin não deve mais sair quando você estiver ocioso. Funciona para mim no Windows. Não se esqueça de limpar o cache do navegador e reiniciar o servidor da web.

Alex
fonte
eu quase esqueci. Depois de aplicar essas alterações, limpe o cache do navegador e reinicie o servidor da web! Felicidades companheiro.
27413 Alex
Eu acho que, na verdade $cfg['Servers'][$i]['LoginCookieValidity'], não é o $cfg['LoginCookieValidity']que deve ser definido, se você tiver a configuração de muitos servidores do phpMyAdmin config.inc.php. E não, comentar o $cfg['Servers'][$i]['LoginCookieValidity']item não trará nenhum resultado, pois esse valor se foi por padrão. Portanto, com esse parâmetro comentado ou removido, o phpMyAdmin parece estar voltando aos 1440segundos padrão .
trejder 31/03
4

etapas para alterar a validade do cookie

Etapa 1: vá para as configurações do Phpmyadmin

passo 2: Geral

etapa 3: validade do cookie de login

etapa 4: atualize o tempo de expiração padrão do cookie de 1440 segundos com seu novo valor

Naresh Dudhat
fonte
3
ele vai trabalhar apenas para uma determinada sessão depois que ele será novamente definido para os 1440 segundos
Naresh Dudhat
2

Se você tiver a configuração de armazenamento de configuração do phpmyadmin , as configurações serão extraídas da tabela phpmyadmin.pma__userconfig e substituirão tudo o que você tiver no config.inc.php. Nesta tabela, cada usuário MYSQL pode receber um conjunto diferente de configurações do phpmyadmin.

Nicolas Connault
fonte
1

Depois de experimentar todos os métodos sugeridos aqui e ainda continuar desconectado, passei a escrever um pequeno recorte de usuário para o Tampermonkey, pois já tenho essa extensão. É muito simples e envia uma solicitação para um dos scripts de menor tamanho do PHPMyAdmin uma vez a cada minuto. Aqui está o código:

// ==UserScript==
// @name         PHPMyAdmin Keep Session Alive
// @namespace    https://www.bitwizeor.io/
// @version      0.1
// @description  No more nasty PHPMyAdmin session expiries
// @match        http://localhost/phpmyadmin/*
// ==/UserScript==

(function() {
    'use strict';
    console.log('PHPMyAdmin Keep Session Alive activated');
    var url;
    window.setInterval(function(){
        url = $("#serverinfo a:eq(1)").prop("href");
        url += '&ajax_request=true&ajax_page_request=true';
        $.getJSON(url);
        console.log('pinging ...');
    }, 60000);
})();
Majid Fouladpour
fonte
1

=== método 1 com login http ===

[php.ini]
session.gc_maxlifetime = 86400

[config.inc.php]

$cfg['Servers'][$i]['auth_type']     = 'http';

=== método 2 com login de cookie ===

[php.ini]

session.gc_maxlifetime = 86400

[config.inc.php]

$cfg['Servers'][$i]['auth_type']     = 'cookie';

$cfg['Servers'][$i]['LoginCookieValidity'] = 86400;

$cfg['Servers'][$i]['pmadb']         = 'phpmyadmin';

$cfg['Servers'][$i]['controluser']   = 'phpmyadmin_pma';

$cfg['Servers'][$i]['controlpass']   = 'nigookike';

$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; // there's a lot of other table required for full functionality,
                                                                         // all others can be left out unconfig except this one

[mysql]
-import phpMyAdmin/sql/create_tables.sql

-grant PRIVILEGES to phpmyadmin_pma as below

db/table

phpmyadmin  ALL PRIVILEGES 

mysql/db    SELECT

mysql/host  SELECT

mysql/tables_priv   USAGE

mysql/user  USAGE


-clear all entries should old one exists

phpmyadmin/pma__userconfig

[webUI]

-clear broswer cookie

-as normal mysql user, access http://mysql/phpmyadmin , at the bottom of page:

    The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. [Find out why.]

-near top of the page

    [Create missing phpMyAdmin configuration storage tables.]

-access http://mysql/phpmyadmin > settings > features > Login cookie validity > 86400 > [apply]

-check phpmyadmin/pma__userconfig contain new entries of aforemention mysql user

NB

  1. todo usuário tem configuração independente e o procedimento [webUI] deve ser repetido para cada usuário

  2. se "O armazenamento da configuração do phpMyAdmin não estiver completamente configurado, alguns recursos estendidos foram desativados. [Descubra o porquê.]"

O link não aparece na página inicial, vá em configurações> recursos> avisos> Tabelas de armazenamento de configuração ausentes do phpMyAdmin> [atualizar] algumas vezes fará com que apareça

Dil Lee
fonte
Formate esse trecho corretamente. Caso contrário, é quase ilegível. - mesmo que o conteúdo pareça promissor.
Igor
0

Eu encontrei a solução e utilizo-a com sucesso já há algum tempo.

Basta instalar este complemento no seu navegador FF.

sandeep
fonte
3
Ótima sugestão, já que o mundo inteiro usa o firefox. Para que isso seja marcado como resposta, você deveria pelo menos sugerir complementos para mais de um navegador - já que a maioria das pessoas normais usa um navegador decente como o google chrome.
5
usar um complemento para um problema tão específico e trivial me parece esmagador.
Saimiris_devel 28/05
1
Isso não responde à pergunta. Esta não deve ser a resposta aceita. Você estava perguntando: “Não sei por que o aumento do tempo limite não entra em vigor. O que estou fazendo de errado?"
Philippe-André Lorin
esta é uma resposta completamente irrelevante. O usuário precisa alterar a "resposta selecionada" ou envolvemos o moderador para analisar isso?
estrelas
0

Funcionou para mim depois que eu

  • mudou o $cfg['LoginCookieValidity']in (phpmyadmin folder)/libraries/config.default.phppara 999999999.

  • checou o php.iniusado pelo phpmyadmin by php5 -i | grep php.ini.

  • foi para o php.iniarquivo cujo caminho que eu tenho da saída do comando grep e mudou o session.gc_maxlifetimevalor a 999999999.

  • reiniciou o servidor. No meu caso, foi sudo service apache2 restart.

Feito. Efetuou login no phpmyadmin e verificou a validade do cookie em Configurações -> Recursos -> Geral -> Validade do cookie de login. Foi 999999999. Também não houve aviso "Seu parâmetro PHP session.gc_maxlifetime é menor que a validade do cookie ...". O aviso apareceu depois que eu entrei no phpmyadmin antes de alterar o php.iniarquivo.

Verifique a versão do php usada pelo phpmyadmin. Você deve alterar o arquivo ini do php usado pelo phpmyadmin. Eu tenho php5 e php (ou seja, 7) ambos instalados. Mas meu phpmyadmin usa php5. Então eu tive que procurar o arquivo ini do php5.

Rakesh Ranjan Das
fonte
0

Sei que este é um post antigo, mas tentei todas as soluções que li, incluindo as desta página sem sucesso, e tive sorte, por isso estou postando aqui.

Estou executando o Ubuntu 17.10.

Arquivei /etc/phpmyadmin/config.inc.php e substituí seu conteúdo pelo /usr/share/phpmyadmin/config.sample.inc.php.

Eu então

 1) Enabled (uncommented) all the options under "Storage database and tables"; 
 2) Included "ini_set('session.gc_maxlifetime', 86400);" underneath the uncommented items; and 
 3) Provided a 32 character sequence for the $cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */, which is above the uncommented items.

Salvei o arquivo e reiniciei o phpMyAdmin.

Selecionei Servidor: localhost -> Configurações -> Recursos e alterei o valor de "Validade do cookie de login" para 86400 (24 horas). Observe que qualquer valor não padrão que você especificar fará com que a cor de fundo dessa opção fique amarela, portanto não se assuste com isso. O valor deve ser menor ou igual ao valor usado em config.inc.php.

Salvei as configurações, saí e reiniciei o phpMyAdmin.

Finalmente, todas as mensagens desapareceram. Minha sessão permanece ativa de acordo com as configurações (o dia inteiro, neste caso), e minhas configurações são lembradas.

Eu certamente espero que isso ajude alguém. Foi frustrante para mim lidar e resolver.

usuario
fonte
0

conduza aqui seu wamp instalado, vá para wamp e apps, depois para a pasta da versão do phpmyadmin, vá para as bibliotecas e edite o arquivo config.default.php, por exemplo

E: \ wamp \ apps \ phpmyadmin4.6.4 \ libraries \ config.default.php

aqui você tem que mudar

$ cfg ['LoginCookieRecall'] = verdadeiro;

para

$ cfg ['LoginCookieRecall'] = false;

Também é possível alterar a hora do cookie para desativar a recuperação de cookies

$ cfg ['LoginCookieValidity'] = 1440;

para

$cfg['LoginCookieValidity'] = anthing grater then 1440 

o meu é

 $cfg['LoginCookieValidity'] = 199000;

depois de mudar, reinicie o servidor insira a descrição da imagem aqui

também existe outro método, mas ele é redefinido sempre que reiniciarmos o servidor wamp e aqui está esse método também

faça login no seu phpmyadmin dashbord, vá para configuração, clique em recursos e, na guia geral, você verá A validade do cookie de login colocar algo maior que 14400, mas isso é válido até a próxima reinicialização do servidor.

insira a descrição da imagem aqui

Darkcoder
fonte
0

Para o Ubuntu 18.04, acabei de editar o arquivo /usr/share/phpmyadmin/libraries/config.default.php

Mudança: $cfg['LoginCookieValidity'] = 1440

Ahmed Ismail
fonte