phpmyadmin automatische Abmeldezeit

88

Wie kann ich die automatische Abmeldezeit von phpmyadmin ändern?

Es wird sich nach 1440 Sekunden automatisch abmelden, was für mich sehr niedrig ist. Wie kann ich die Option ändern oder die Anmeldeanforderung vollständig entfernen?

Abadis
quelle

Antworten:

86

Erstellen oder bearbeiten Sie Ihre php.iniDatei und legen Sie diesen Variablenwert fest:

session.gc_maxlifetime = 1440

Die Ganzzahl ist in Sekunden. 500000 Sekunden sind 5,7 Tage. Starten Sie dann Apache neu.

Ravinder Singh
quelle
2
Öffnen Sie also Ihre Datei php.ini und erhöhen Sie den Wert von session.gc_maxlifetime.
Ravinder Singh
9
schlechte Antwort, Sicherheitsprobleme!
Sebastian Viereck
1
Möglicherweise müssen Sie auch $ cfg ['LoginCookieValidity'] in der Datei phpmyadmin config.inc.php aktualisieren.
Jorge Orpinel
5
@ slaver113 In diesem Fall würde ich sagen, dass die Sicherheit in Ordnung ist, da es sich um eine Entwicklungsumgebung handelt. Dies ist NICHT in Ordnung für eine Produktionsumgebung. Ich würde es vorziehen, wenn dies in der Antwort erwähnt wird.
Manuel
7
Dies hat nichts mit dem Timeout von PHPMyAdmin zu tun. Ich weiß nicht, warum es so hoch gewählt ist. Es hat nicht einmal mit der Frage zu tun.
Felwithe
111

Durch Ändern von php.ini wird die Sitzungsdauer für alle auf dem Server ausgeführten Websites geändert. Um es nur für PhpMyAdmin zu ändern, öffnen Sie config.inc.phpund fügen Sie hinzu:

$sessionDuration = 60*60*24*7; // 60*60*24*7 = one week
ini_set('session.gc_maxlifetime', $sessionDuration);
$cfg['LoginCookieValidity'] = $sessionDuration;
Laurent
quelle
20
Es scheint eine Benutzeroberfläche zum Festlegen von config.php-Variablen unter localhost / phpmyadmin / setup /… zu geben - siehe Anmelde-Cookie-Gültigkeit
psycho brm
Diese UI-Einstellung ist etwas verwirrend, funktioniert jedoch zum Festlegen des Kennworts in der Konfiguration für die automatische Anmeldung und zum Festlegen der Sitzungsablaufzeit. Upvote.
Antonio Max
1
Unbegrenzte Zeit ist unmöglich, da jedes Cookie ein "Gültig bis" -Datum hat, aber Sie können einfach eine sehr hohe Zahl eingeben.
Marcel Burkhard
5
Dies sollte die Antwort sein. In der Frage wurde gefragt, wie phpMyAdmin geändert werden soll. Diese Antwort löst es spezifisch.
1
Sie müssen auch den Cookie-Pfad ändern. Wenn gc_maxlifetime für eine andere Website definiert ist, löscht der gc alle Cookies, wenn er zum ersten Mal für eine Website aufgerufen wird. Sie können diese beiden Zeilen in die Datei /etc/apache2/conf-available/phpmyadmin.conf einfügen: php_admin_value session.gc_maxlifetime 604800 + php_admin_value session.save_path / var / lib / phpmyadmin / tmp
fred727
96

In PHPMyAdmin 4 wird dies nicht mehr in der Datei config.inc.php angezeigt. Gehen Sie stattdessen in Ihrem Browser zu PHPMyAdmin. Stellen Sie sicher, dass Sie sich auf der Ebene des lokalen Hosts befinden, um den Link Einstellungen anzuzeigen. Stellen Sie dann Einstellungen> Funktionen> Ändern Sie den Wert von 'Anmelde-Cookie-Gültigkeit'> Speichern ein

Anleitung

Kohjah Breese
quelle
Hinweis: Die Anzahl der Zeichen, die Sie in dieses Feld eingeben können, scheint begrenzt zu sein.
Kohjah Breese
1
Die Änderung der Benutzeroberfläche funktioniert bei mir nicht. Es wird immer noch zu schnell abgemeldet , egal wie groß die Gültigkeit des Login-Cookies ist.
Dani24
4
@ dani24, hast du diesen Hinweis bekommen : Your preferences will be saved for current session only. Storing them permanently requires phpMyAdmin configuration storage.? Klicken Sie hier auf den Link, um Anweisungen zum dauerhaften Speichern von Änderungen zu erhalten.
Parapluie
phpMyAdmin zeigt diesen Fehler an. Your PHP parameter session.gc_maxlifetime is lower than cookie validity configured in phpMyAdmin, because of this, your login will expire sooner than configured in phpMyAdmin.Sie müssen sowohl Ravinder Singhs als auch diese Antwort anwenden.
Abraham Murciano Benzadon
7
Nicht verfügbar in Version 4.8.4
Thanasis
11

Sie können die Funktion für die Cookie-Zeitsitzung auf der phpmyadmin-Weboberfläche ändern

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

ODER

Wenn Sie die Gültigkeit des Anmeldecookies in der Konfigurationsdatei ändern möchten, öffnen Sie die Konfigurationsdatei phpmMyAdmin config.inc.phpim Stammverzeichnis von PHPMyAdmin (das Stammverzeichnis lautet normalerweise / etc / phpmyadmin /).

Suchen Sie nach dem Auffinden der Datei config.inc.php nach der folgenden Zeile und setzen Sie sie auf den Wert von Sekunden, für den phpmyadmin eine Zeitüberschreitung aufweisen soll:

['LoginCookieValidity'] 

Wenn Sie die obige Zeile nicht finden konnten, fügen Sie einfach Folgendes hinzu:

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

Beispielsweise:

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

Das Zeitlimit ist im obigen Beispiel auf 3 Stunden eingestellt.

session.gc_maxlifetimeDies kann die Gültigkeit der Sitzung einschränken. Wenn die Sitzung verloren geht, wird auch das Anmeldecookie ungültig. Daher müssen wir möglicherweise die session.gc_maxlifetime in festlegenphp.ini Konfigurationsdatei Datei ist / etc / php5 /apache2/php.ini in Ubuntu).

session.gc_maxlifetime = 3600 * 3


phpMyAdmin Dokumentation zu LoginCookieValidity

$ cfg ['LoginCookieValidity']

Typ: Ganzzahl [Anzahl der Sekunden]
Standardwert: 1440

Legen Sie fest, wie lange ein Login-Cookie gültig ist. Bitte beachten Sie, dass die PHP-Konfigurationsoption session.gc_maxlifetime die Gültigkeit der Sitzung einschränken kann. Wenn die Sitzung verloren geht, wird auch das Anmelde-Cookie ungültig. Es ist daher eine gute Idee, session.gc_maxlifetime mindestens auf den gleichen Wert von $ cfg ['LoginCookieValidity'] zu setzen.

HINWEIS:

  1. Wenn Ihr Server abgestürzt ist und Ihre phpmyadmin-Seite nicht laden kann, überprüfen Sie Ihr Apache-Protokoll unter /var/log/apache2/error.log. Wenn du hastPHP Fatal error: Call to a member function get() on a non-object in /path/to/phpmyadmin/libraries/Header.class.php in die Zeile 135 eingestiegen sind, führen Sie achmod 644 config.inc.php . das sollte den Fehler beheben.
  2. Wenn Sie die Warnung erhalten : 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., ändern Sie die session.gc_maxlifetime wie oben beschrieben.
Für immer
quelle
5

Nur bei LOCAL-Installationen können Sie die Anmeldung und das Timeout vollständig entfernen - dies scheint das zu sein, wonach Sie suchen. Wenn Sie den Autorisierungstyp in "config" ändern und Ihren Datenbankbenutzernamen und Ihr Kennwort in Ihre Konfigurationsdatei eingeben, werden Sie automatisch angemeldet. Hinzufügen zu config.inc.php:

$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'username';
$cfg['Servers'][$i]['password'] = 'password';
$cfg['Servers'][$i]['AllowNoPassword'] = false;

Wenn Sie dies auf einem Server im Internet tun, kommt natürlich ein frecher Kerl vorbei und lädt fröhlich alle Ihre Passwörter herunter und löscht Ihre Website. Dies gilt nur für einen Entwicklungsserver, der auf Ihrem eigenen Laptop ausgeführt wird.

Eine einfachere Möglichkeit, phpmyadmin heutzutage anzupassen, besteht darin, unter http://www.example.com/phpmyadmin/setup/ alle Einstellungen gleichzeitig zu speichern, unten auf Speichern oder Herunterladen zu klicken und die generierte Datei in Ihre zu kopieren root phpmyadmin Verzeichnis, dann chmod es. Sie müssen die Schreibberechtigung deaktivieren, auch wenn es sich um einen lokalen Server handelt, da phpmyadmin dies überprüft, bevor Sie sich anmelden können.

Chris
quelle
Der Dateiname ist falsch, kein großes Problem, da die meisten verstehen werden, was Sie meinen. Der korrekte Name ist dennochconfig.inc.php
David
3

Durchsuchen Sie das Verzeichnis 'apps \ phpmyadmin4.5.2' in Ihrem wamp-Ordner und öffnen Sie die Datei config.inc.php. Fügen Sie dann diese Zeile unter dem vorhandenen Code hinzu.

'$cfg['LoginCookieValidity'] = 3600 * 10; //login cookie validity extended upto 10 hours'.

Das ist alles...

Koushik Chowdhury
quelle
1

Für phpMyadmin 5.0.2 unter Ubuntu 18.04 habe ich die Datei wie folgt bearbeitet:

  1. sudo nano /usr/share/phpmyadmin/libraries/classes/Config/Forms/User/FeaturesForm.php

  2. Suchen Sie die Methode public static function getForms()und fügen Sie das Feld LoginCookieValidity hinzu

    public static function getForms()
    {
        $result = [
            'General' => [
                'VersionCheck',
                'NaturalOrder',
                'InitialSlidersState',
                'LoginCookieValidity', //Added this line if it missing
                ...........
          }
  3. Speichern Sie die Datei und jetzt können Sie den Wert über die Benutzeroberfläche ändern.

[Einstellungen -> Allgemein -> Funktionen -> Anmelde-Cookie-Gültigkeit]

Sandip
quelle
Danke dafür. Ich habe mir die obigen Antworten und meine 5.0.2-Installation angesehen und dachte, ich hätte den Verstand verloren! Frage mich, warum sie die Benutzeroberfläche entfernt haben, insbesondere wenn sie noch zur erneuten Aktivierung bereit ist?
Headbank
0

Server:localhost -> Settings -> Features -> General -> Login cookie validity

Pmpr
quelle
Die gleiche Antwort wurde bereits vor langer Zeit veröffentlicht (und mit Erklärung + Informationen zum Zeitlimit für PHP-Sitzungen, das Ihrer Antwort fehlt).
Marki555
Obwohl ich nicht erwähnt habe, bevorzuge ich immer super einfache Antworten für irgendeine Art von Fragen.
Pmpr
1
Ja, aber wenn Sie die Gültigkeit von Login-Cookies auf einen höheren Wert als die Gültigkeit der Sitzung in PHP setzen, funktioniert dies nicht.
Marki555
Das wusste ich nicht. danke für deinen informativen Kommentar :)
Pmpr
-1

Ich habe phpmyadmin 4.9.2. und versuchen Sie, LoginCookieValidity zu konfigurieren, aber ich habe eine automatische Abmeldung :( Wenn Sie localhost verwenden, können Sie https://docs.phpmyadmin.net/en/latest/config.html#example-for-ip-address-limited-autologin versuchen

if ($_SERVER["REMOTE_ADDR"] == "127.0.0.1") {
    $cfg['Servers'][$i]['auth_type'] = 'config';
    $cfg['Servers'][$i]['user'] = 'root';
    $cfg['Servers'][$i]['password'] = 'yourpassword';
} else {
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
}
Denis Viunyk
quelle