phpmyadmin si disconnette dopo 1440 secondi


134

Nella mia casella di sviluppo locale Ubuntu uso MySQL e phpmyadmin per lavorare con il database.

Ogni volta che phpmyadmin rimane inattivo per 1440 secondi (24min) la sessione scade. Perdo il mio posto e devo accedere e ricominciare da capo.

Ho provato a cambiare l' $cfg['LoginCookieValidity'] = 3600 * 9;interno config.inc.phpma è ancora scaduto in 1440 secondi.

Ho riavviato tutto e cancellato la cache del browser (cronologia di Firefox -> Cancella cronologia recente -> Cache -> Tutto).

Non sono sicuro del motivo per cui il timeout aumentato non abbia effetto. Che cosa sto facendo di sbagliato?


5
La prima cosa che mi viene in mente è, hai riavviato il server web dopo aver cambiato config.inc.php?
0xmtn,

Sì, avevo eseguito questo comando: sudo service mysql restart
sandeep

2
Se hai risolto questo problema, puoi inviare la soluzione come risposta qui? ;)
0xmtn

Per Ubuntu 18.04 ho appena modificato il file /usr/share/phpmyadmin/libraries/config.default.php Modifica: $ cfg ['LoginCookieValidity'] = 1440
Ahmed Ismail l'

Risposte:


199

Vai a PHPMyAdmin nel tuo browser

Impostazioni> Funzionalità> Modifica il valore di validità del cookie di accesso> Salvainserisci qui la descrizione dell'immagine

NOTA : dovrai farlo per sessione.


5
Questa è la soluzione più veloce e più semplice per questo problema. Dovrebbe essere la risposta !!!
Pini Cheyni,

14
Non è una soluzione permanente. Ho provato a farlo, ma dopo uno o due giorni si reimposta di nuovo a 1440 secondi.
Rolen Koh,

5
Funziona solo per la sessione corrente. Lo dice anche nelle impostazioni.
Richard Duerr,

4
non dimenticare di aggiornare l'impostazione php.inisession.gc_maxlifetime = SAME_OR_BIGGER_VALUE_AS_PHPMYADMIN
Lukas Liesis il

7
Cordiali saluti: non è l'opzione migliore. Salva solo nella sessione corrente
Abdulla Nilam,

70

Aggiungi questa riga a /config.inc.php:

$cfg['LoginCookieValidity'] = 36000;

In /setup/lib/index.lib.php

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

Se non hai già un file .htaccess per il tuo sito phpMyAdmin, creane uno e aggiungi la seguente riga per sovrascrivere il timeout della sessione PHP predefinito:

php_value session.gc_maxlifetime 36000

Non consiglierei di alterare questo valore nel tuo file php.ini principale, in quanto consentirà un timeout di sessione ridicolmente lungo per tutti i tuoi siti PHP.

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


1
se posso aggiungere a questo, cambia anche nella riga 698 di config.default.php da $ cfg ['LoginCookieValidity'] = 1440; a $ cfg ['LoginCookieValidity'] = 36000;
Stazione

1
invece di inserire la prima riga, phpmyadmin/config.inc.phpinseriscilo in un nuovo file nella directory in phpmyadmin/conf.dmodo che non venga sovrascritto su un aggiornamento
zelcon

5
Puoi anche estendere gc_maxlifetime aggiungendo quanto segue al tuo file config.inc.php (in genere nella directory / etc / phpmyadmin): ini_set ('session.gc_maxlifetime', '36000'); Questo lo localizzerà anche in phpmyadmin e non influenzerà il periodo di Garbage Collection di altri script PHP. E, in base alla documentazione, il file config.inc.php deve essere usato per alterare il comportamento - vedi docs.phpmyadmin.net/en/latest/config.html . Pertanto, non preoccuparti che questo file venga modificato da un aggiornamento.
ReverseEMF

1
Ho appena provato questo e sembra che il passaggio 2 non sia necessario. Cambia solo il file di configurazione e cambia il .htaccess.
Andy Mercer,

Per Ubuntu 18.04 il file è/usr/share/phpmyadmin/libraries/config.default.php
Ahmed Ismail l'

52

È possibile modificare la funzione della sessione temporale dei cookie su:

Impostazioni-> Funzioni-> Generale-> Validità cookie di accesso

Ho trovato la risposta qui. Nessuna attività entro 1440 secondi; Per favore esegui l'accesso di nuovo

MODIFICARE:

Questa soluzione funzionerà solo per la sessione corrente, per cambiare in modo permanente fare:

apri config.inc.php nella directory principale di phpMyAdmin.

cartella wamp: wamp \ apps \ phpmyadmin {versione} \ config.inc.php

ubuntu: / etc / phpmyadmin

aggiungi questa linea

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

Esempio

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

9
Devi cambiare session.gc_maxlifetimein php.ini a un valore superiore al valore predefinito: anche 1440.
M Rostami,

5
Questa risposta è molto incompleta e non dovrebbe essere il massimo del voto. La modifica delle impostazioni fornisce il seguente avviso: "Le tue preferenze verranno salvate solo per la sessione corrente. La memorizzazione permanente richiede l'archiviazione della configurazione di phpMyAdmin."
fivedogit,

@fivedogit qui ho inserito una risposta più completa che sta funzionando bene riguardo a questa risposta.
Mojtaba Rezaeian,

Si noti che non è possibile impostare un valore maggiore di 9223372036854775806, altrimenti si verificherà un overflow di numeri interi.
egdavid,

23

È possibile modificare la funzione della sessione temporale dei cookie nell'interfaccia web di phpmyadmin

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

O

Se si desidera modificare la "validità del cookie di accesso" nel file di configurazione, quindi aprire il file di configurazione phpmMyAdmin, config.inc.phpnella directory principale di PHPMyAdmin (la directory principale è in genere / etc / phpmyadmin /)

Dopo aver individuato config.inc.php, cerca la riga seguente e impostala sul valore di secondi in cui vuoi che timeout di phpmyadmin:

$cfg['LoginCookieValidity'] 

o

Aggiungi quanto segue:

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

Per esempio:

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

Il timeout è impostato su 3 ore dall'esempio sopra.

session.gc_maxlifetimepotrebbe limitare la validità della sessione e se la sessione viene persa, anche il cookie di accesso viene invalidato. Quindi, potrebbe essere necessario impostare session.gc_maxlifetime nel php.inifile di configurazione (il percorso del file è / etc / php5 /apache2/php.ini in ubuntu).

session.gc_maxlifetime = 3600 * 3


Documentazione phpMyAdmin su LoginCookieValidity

$ Cfg [ 'LoginCookieValidity']

Tipo: intero [numero di secondi]
Valore predefinito: 1440

Definire per quanto tempo è valido un cookie di accesso. Nota che l'opzione di configurazione php session.gc_maxlifetime potrebbe limitare la validità della sessione e se la sessione viene persa, anche il cookie di accesso viene invalidato. Quindi è una buona idea impostare session.gc_maxlifetime almeno sullo stesso valore di $ cfg ['LoginCookieValidity'].

NOTA:

  1. Se il tuo server si è bloccato e non è possibile caricare la tua pagina phpmyadmin, controlla il tuo log di apache su /var/log/apache2/error.log. Se sei arrivato PHP Fatal error: Call to a member function get() on a non-object in /path/to/phpmyadmin/libraries/Header.class.phpsulla linea 135, allora fai a chmod 644 config.inc.php. quello dovrebbe occuparsi dell'errore.
  2. Sarà quindi ottenere un altro avvertimento: 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.. quindi cambiare session.gc_maxlifetime come sopra indicato.

16

Sembra che ci sia un'interfaccia utente per modificare le configurazioni di phpmyadmin. Avvia apache e fai clic sul seguente link

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


2
Questo collegamento porta alla configurazione di phpMyAdmin . Cambiare le impostazioni dell'applicazione funzionante tramite lo script di installazione è un po 'rischioso, non credi?
trejder

13

Passaggi per farlo utilizzando phpMyAdmin settingssenza alcun problema o requisito per modificare le configurazioni in php my.ini o per definire il file .htaccess:

  1. Vai al phpMyAdminpercorso di installazione (ad es. / Usr / share / phpMyAdmin / sul mio centos7) e trova create_tables.sqlin una delle sue sottocartelle ( phpMyAdmin/sql/create_tables.sqlnella mia versione 4.4.9.) Ed esegui l'intero contenuto del file sul tuo attuale sito phpMyAdmin dal tuo browser web. Questo creerà un database chiamato phpmyadminche può salvare permanentemente tutte le opzioni di phpMyAdmin.
  2. In phpMyAdmin's config.inc.php (che si trova su / etc / phpMyAdmin / nel mio server centos7) trova la riga commentata $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';e decommentala (Ora phpMyAdmin utilizzerà quel database personalizzato che abbiamo generato nel passaggio precedente).
  3. Vai a phpMyAdmin dal browser web e vai Server >> Settings >> Features >> "Login Cookie Validity"come nella foto descritta da Pavnish e imposta il valore desiderato. Ora funziona.

Riferimenti : Niccolas Answer , PhpMyAdmin Configuration Storage , flashMarks Answer


Questo non funziona su phpMyAdmin 4.8.3. Rendere di nuovo il semplice complesso. Ricordo prima di questo aggiornamento (stavo usando 4.4 o giù di lì) tutto ha funzionato bene tramite Server >> Impostazioni >> Feagtures, come detto qui. Non più. Config.inc.php non viene fornito con quella riga
luisfer

8

Riceverai quindi un altro avviso: "Il tuo parametro PHP session.gc_maxlifetime è inferiore alla validità dei cookie configurata in phpMyAdmin, per questo motivo il tuo accesso scadrà prima di quello configurato in phpMyAdmin.". Questo ha senso perché la sessione di php scadrà comunque prima. Quindi dovremo cambiare /etc/php.ini.

session.gc_maxlifetime = 43200
Thats 12 hours in seconds. 

Riavvia il tuo server Apache e il gioco è fatto!

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

questo funziona per me! :)


7

Dovresti riavviare apache o httpd, non mysqld

sudo service httpd restart

o

sudo /etc/init.d/apache2 restart

Ora ho riavviato apache usando il comando ur (es. Sudo /etc/init.d/apache2 restart), ma phpmyadmin si disconnette ancora dopo 1440 secondi.
Sandeep

1
Viene visualizzato l'errore " Nessuna attività entro 1440 secondi; accedi di nuovo " o si disconnette? Se si disconnette controlla session.gc_maxlifetimenel tuo /etc/php.ini, qual è il valore di questo?
0xmtn,

sì, vedo questo messaggio: "Nessuna attività entro 1440 secondi; accedi di nuovo"
sandeep

1
Questo è davvero strano. Puoi per favore impostare anche session.gc_maxlifetime=3600*9in /etc/php.ini e riavviare il server web e riprovare? Solo per un debug più veloce impostare entrambi ( session.gc_maxlifetimee $cfg['LoginCookieValidity']) su qualcosa di piccolo, ad esempio 50 (secondi), quindi riavviare il server web, svuotare la cache del browser e riprovare.
0xmtn,

Puoi chiarire come, il riavvio del servizio dovrebbe cambiare la configurazione di qualcosa?
trejder

7

Basta aumentare il timeout della sessione phpMyAdmin, aprire config.inc.php nella directory root phpMyAdmin e aggiungere questa riga.

dal percorso della cartella di wamp wamp \ apps \ phpmyadmin4.0.4 \ config.inc.php

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

Esempio

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

Nota: la breve durata dei cookie è positiva per il server di sviluppo e non per il server di produzione.


7

1) Accedi a phpMyAdmin 2) Dalla schermata principale fai clic su "Altre impostazioni" (parte inferiore centrale dello schermo per me) 3) Fai clic sulla scheda / pulsante "Funzionalità" nella parte superiore dello schermo. 4) Per 20 giorni imposta l'impostazione "Validità cookie di accesso" su 1728000 5) Applica.

php xampp


6

Per impostare cookie permanentemente è necessario seguire alcuni passaggi

Vai a> /etc/phpmyadmin/config.inc.phpfile

aggiungi questo codice

$cfg['LoginCookieValidity'] = <cookie expiration time in seconds > 

5

Non funziona. La sessione PHP scadrà comunque dopo 1440 secondi.

Cambia anche in PHP.iniquesto:

session.gc_maxlifetime = 3600

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

Inoltre, da PHP.ini:

Se si utilizza l'opzione della sottodirectory per l'archiviazione dei file di sessione

; (vedi session.save_path sopra), quindi la garbage collection no

; succede automaticamente. Dovrai fare la tua spazzatura

; raccolta tramite uno script shell, voce cron o qualche altro metodo.

; Ad esempio, il seguente script sarebbe l'equivalente di

; impostando session.gc_maxlifetime a 1440 (1440 secondi = 24 minuti):

; cd / percorso / a / sessioni; trova -cmin +24 | xargs rm


5

modifica nel file php.in da wampicon / php / php

session.gc_maxlifetime = 1440

per

session.gc_maxlifetime = 43200

4

Se il parametro $cfg['LoginCookieValidity']non ha effetto nel config.inc.phpfile, prova a disabilitare il session.gc_maxlifetimefile php.ini mettendo un punto e virgola a sinistra in questo modo:

; 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

Oppure prova a disabilitare entrambi $cfg['LoginCookieValidity']e session.gc_maxlifetime = 1440commentandoli entrambi.

Quindi phpMyAdmin non dovrebbe più disconnettersi quando è inattivo. Funziona per me su Windows. Non dimenticare di cancellare la cache del browser e riavviare il server web.


ho quasi dimenticato. Dopo aver applicato tali modifiche, svuota la cache del browser e riavvia il server web! saluti amico.
Alex,

Penso, in realtà $cfg['Servers'][$i]['LoginCookieValidity'], non è il $cfg['LoginCookieValidity']caso che dovrebbe essere impostato, se hai la configurazione simile a molti server di phpMyAdmin config.inc.php. E no, commentare il $cfg['Servers'][$i]['LoginCookieValidity']non porterà alcun risultato, poiché questo valore è andato per impostazione predefinita. Quindi, con questo parametro commentato o rimosso, phpMyAdmin sembra tornare ai 1440secondi predefiniti .
trejder

4

passaggi per modificare la scadenza dei cookie

passaggio 1: vai alle impostazioni di Phpmyadmin

passaggio 2: generale

passaggio 3: validità dei cookie di accesso

passaggio 4: aggiorna il tempo di scadenza predefinito dei cookie di 1440 secondi con il nuovo valore


3
funzionerà solo per una sessione particolare dopo che sarà nuovamente impostato sui 1440 secondi
Naresh Dudhat

2

Se si dispone di un archivio di configurazione phpmyadmin , le impostazioni verranno estratte dalla tabella phpmyadmin.pma__userconfig e sovrascriveranno tutto ciò che hai in config.inc.php. In questa tabella, a ciascun utente MYSQL può essere assegnato un diverso set di impostazioni phpmyadmin.


1

Dopo aver provato tutti i metodi suggeriti qui e continuando a disconnettermi, ho iniziato a scrivere un piccolo codice utente per Tampermonkey poiché ho già quell'estensione. È molto semplice e invia una richiesta a uno degli script a basso footprint di PHPMyAdmin una volta al minuto. Ecco il codice:

// ==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);
})();

1

=== metodo 1 con accesso http ===

[php.ini]
session.gc_maxlifetime = 86400

[config.inc.php]

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

=== metodo 2 con accesso ai 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. ogni utente ha un'impostazione indipendente e la procedura [webUI] deve essere ripetuta per ogni utente

  2. se "La memoria di configurazione di phpMyAdmin non è completamente configurata, alcune funzioni estese sono state disattivate. [Scopri perché.]"

il collegamento non appare in prima pagina, vai su impostazioni> caratteristiche> avvisi> Tabelle di archiviazione della configurazione phpMyAdmin mancanti> [aggiorna] alcune volte lo farà apparire


Formatta questo frammento correttamente. Altrimenti è quasi illeggibile. Anche se il contenuto sembra promettente.
Igor,

0

Ho trovato la soluzione e la utilizzo con successo da qualche tempo.

Installa questo componente aggiuntivo sul tuo browser FF.


3
Ottimo suggerimento, dal momento che tutto il mondo usa firefox .. Per questo per contrassegnare come risposta, dovresti almeno aver suggerito componenti aggiuntivi per più di 1 browser - dal momento che la maggior parte delle persone normali usa un browser decente come google chrome ..

5
usare un addon per un problema così specifico e banale mi sembra schiacciante.
saimiris_devel,

1
Questo non risponde alla domanda. Questa non dovrebbe essere la risposta accettata. Stavi chiedendo: “Non sono sicuro del motivo per cui il timeout aumentato non abbia effetto. Che cosa sto facendo di sbagliato?"
Philippe-André Lorin,

questa è una risposta completamente irrilevante. O l'utente deve cambiare la "risposta selezionata" o coinvolgiamo il moderatore per esaminare questo?
Stella

0

Ha funzionato per me dopo di me

  • ha cambiato $cfg['LoginCookieValidity']in (phpmyadmin folder)/libraries/config.default.phpin 999999999.

  • controllato php.inida usato da phpmyadmin da php5 -i | grep php.ini.

  • è andato al php.inifile il cui percorso ho ottenuto dall'output del comando grep e ha cambiato il session.gc_maxlifetimevalore in 999999999.

  • riavviato il server. Nel mio caso lo era sudo service apache2 restart.

Fatto. È stato effettuato l'accesso a phpmyadmin e verificato la validità dei cookie in Impostazioni -> Funzionalità -> Generale -> Validità dei cookie di accesso. Lo è stato 999999999. Inoltre non vi è stato alcun avviso "Il parametro PHP session.gc_maxlifetime è inferiore alla validità del cookie ...". L'avviso è apparso dopo aver effettuato l'accesso a phpmyadmin prima di aver cambiato il filephp.ini file.

Controlla la versione di php utilizzata da phpmyadmin. È necessario modificare il file ini del php utilizzato da phpmyadmin. Ho installato php5 e php (cioè 7). Ma il mio phpmyadmin utilizza php5. Quindi ho dovuto cercare il file ini di php5.


0

So che questo è un vecchio post, ma ho provato tutte le soluzioni che ho letto, comprese quelle su questa pagina senza alcun risultato, e poi sono stato fortunato, quindi sto pubblicando qui.

Sto eseguendo Ubuntu 17.10.

Ho archiviato /etc/phpmyadmin/config.inc.php e sostituito il suo contenuto con il contenuto di /usr/share/phpmyadmin/config.sample.inc.php.

io poi

 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.

Ho salvato il file e riavviato phpMyAdmin.

Ho selezionato Server: localhost -> Impostazioni -> Funzionalità e ho modificato il valore di "Validità cookie di accesso" su 86400 (24 ore). Nota che qualsiasi valore non predefinito specificato farà diventare giallo il colore di sfondo di questa opzione, quindi non allarmarti. Il valore dovrebbe essere inferiore o uguale al valore che hai usato in config.inc.php.

Ho salvato le impostazioni, sono uscito e ho riavviato phpMyAdmin.

Alla fine, tutti i messaggi sono scomparsi. La mia sessione rimane attiva secondo le impostazioni (tutto il giorno in questo caso) e le mie impostazioni vengono ricordate.

Spero sicuramente che questo aiuti qualcuno. È stato frustrante per me affrontare e risolvere.


0

guida qui il tuo wamp installato quindi vai su wamp quindi app quindi sulla tua cartella versione phpmyadmin quindi vai su librerie quindi modifica il file config.default.php ad es.

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

qui devi cambiare

$ cfg ['LoginCookieRecall'] = true;

per

$ cfg ['LoginCookieRecall'] = false;

inoltre puoi modificare il tempo dei cookie invece di disabilitare il richiamo dei cookie

$ cfg ['LoginCookieValidity'] = 1440;

per

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

il mio è

 $cfg['LoginCookieValidity'] = 199000;

dopo aver modificato riavviare il server inserisci qui la descrizione dell'immagine

inoltre c'è un altro metodo ma si reimposta ogni volta che riavviamo il nostro server Wamp ed ecco anche questo metodo

accedi al tuo dashbord phpmyadmin quindi vai alle impostazioni quindi fai clic su funzionalità e in generale vedrai la validità del cookie di accesso inserire qualcosa di più di 14400 ma questo è valido fino al prossimo riavvio del server.

inserisci qui la descrizione dell'immagine


0

Per Ubuntu 18.04 ho appena modificato il file /usr/share/phpmyadmin/libraries/config.default.php

Modificare: $cfg['LoginCookieValidity'] = 1440

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.