Czas automatycznego wylogowania z phpmyadmin

89

Jak mogę zmienić czas automatycznego wylogowania z phpmyadmin?

Wyloguje się automatycznie po 1440 sekundach, co jest dla mnie bardzo niskie. Jak mogę zmienić opcję lub całkowicie usunąć żądanie logowania?

Abadis
źródło

Odpowiedzi:

87

Utwórz lub edytuj swój php.iniplik i ustaw w nim wartość tej zmiennej:

session.gc_maxlifetime = 1440

Liczba całkowita jest w sekundach. 500000 sekund to 5,7 dnia. Następnie uruchom ponownie Apache.

Ravinder Singh
źródło
2
więc otwórz plik php.ini i zwiększ wartość session.gc_maxlifetime, to wszystko.
Ravinder Singh
11
zła odpowiedź, problemy z bezpieczeństwem!
Sebastian Viereck
1
Konieczne może być również zaktualizowanie $ cfg ['LoginCookieValidity'] w pliku phpmyadmin config.inc.php.
Jorge Orpinel
5
@ slaver113 W tym przypadku powiedziałbym, że bezpieczeństwo jest w porządku, ponieważ jest to środowisko programistyczne, NIE jest w porządku dla żadnego środowiska produkcyjnego. Wolałbym, aby to zostało wspomniane w odpowiedzi.
Manuel,
8
Nie ma to nic wspólnego z limitem czasu PHPMyAdmin. Nie wiem, dlaczego tak wysoko głosowano. Nie jest to nawet związane z pytaniem.
felwithe
113

Zmiana php.ini spowoduje zmianę czasu trwania sesji dla wszystkich stron internetowych działających na serwerze. Aby zmienić to tylko dla PhpMyAdmin, otwórz config.inc.phpi dodaj:

$sessionDuration = 60*60*24*7; // 60*60*24*7 = one week
ini_set('session.gc_maxlifetime', $sessionDuration);
$cfg['LoginCookieValidity'] = $sessionDuration;
laurent
źródło
21
wydaje się, że interfejs do ustawiania zmiennych config.php na localhost / phpMyAdmin / setup / ... - patrz Zaloguj Cookie Ważność
psycho BRM
To ustawienie interfejsu użytkownika jest nieco mylące, ale działa przy ustawianiu hasła w konfiguracji do automatycznego logowania i ustawiania czasu wygaśnięcia sesji. Głosuj za.
Antonio Max
1
Nieograniczony czas jest trochę niemożliwy, ponieważ każdy plik cookie ma datę „Ważny do”, ale możesz po prostu wprowadzić bardzo dużą liczbę.
Marcel Burkhard,
5
To powinna być odpowiedź. Pytanie dotyczyło modyfikacji phpMyAdmin. Ta odpowiedź konkretnie to rozwiązuje.
1
Musisz także zmienić ścieżkę plików cookie. Ponieważ jeśli gc_maxlifetime jest zdefiniowane dla innej witryny, gc usunie wszystkie pliki cookie przy pierwszym wywołaniu witryny. Możesz dodać te 2 linie w pliku /etc/apache2/conf-available/phpmyadmin.conf: php_admin_value session.gc_maxlifetime 604800 + php_admin_value session.save_path / var / lib / phpmyadmin / tmp
fred727
96

W PHPMyAdmin 4 nie pojawia się to już w pliku config.inc.php. Zamiast tego przejdź do PHPMyAdmin w swojej przeglądarce. Upewnij się, że jesteś na poziomie hosta lokalnego, aby zobaczyć łącze Ustawienia. Następnie ustaw Ustawienia> Funkcje> Zmień wartość „Ważność pliku cookie logowania”> Zapisz

instrukcje

Kohjah Breese
źródło
Uwaga: wydaje się, że istnieje ograniczenie liczby znaków, które można wprowadzić w tym polu.
Kohjah Breese
1
Zmiana interfejsu użytkownika nie działa dla mnie. Nadal wylogowuje się zbyt szybko, bez względu na to, jak większa jest ważność pliku cookie logowania .
dani24,
4
@ dani24, wziąłeś ten anons: Your preferences will be saved for current session only. Storing them permanently requires phpMyAdmin configuration storage.? Kliknij łącze w tym, aby uzyskać instrukcje dotyczące włączenia możliwości trwałego przechowywania zmian.
Parapluie
phpMyAdmin pokaże ten błąd. 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.Będziesz musiał zastosować odpowiedź Ravindera Singha, a także tę.
Abraham Murciano Benzadon
7
Niedostępne w wersji 4.8.4
Thanasis
11

Możesz zmienić funkcję sesji plików cookie w interfejsie internetowym phpmyadmin

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

LUB

Jeśli chcesz zmienić `` ważność ciasteczka logowania '' w pliku konfiguracyjnym, otwórz plik konfiguracyjny phpmMyAdmin, config.inc.php w katalogu głównym PHPMyAdmin. (Katalog główny to zwykle / etc / phpmyadmin /)

Po zlokalizowaniu pliku config.inc.php, wyszukaj poniższy wiersz i ustaw w nim wartość w sekundach, w których phpmyadmin ma przekroczyć limit czasu:

['LoginCookieValidity'] 

Jeśli nie możesz znaleźć powyższej linii, po prostu dodaj następujące:

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

Na przykład:

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

Limit czasu jest ustawiony na 3 godziny z powyższego przykładu.

session.gc_maxlifetimemoże ograniczyć ważność sesji, a jeśli sesja zostanie utracona, plik cookie logowania również zostanie unieważniony. Dlatego może być konieczne ustawienie session.gc_maxlifetime w php.inipliku konfiguracyjnym (lokalizacja pliku to / etc / php5 /apache2/php.ini w systemie ubuntu).

session.gc_maxlifetime = 3600 * 3


Dokumentacja phpMyAdmin dotycząca LoginCookieValidity

$ cfg ['LoginCookieValidity']

Typ: integer [liczba sekund]
Wartość domyślna: 1440

Określ, jak długo plik cookie logowania jest ważny. Należy pamiętać, że opcja konfiguracji php session.gc_maxlifetime może ograniczyć ważność sesji, a jeśli sesja zostanie utracona, plik cookie logowania zostanie również unieważniony. Dlatego dobrym pomysłem jest ustawienie session.gc_maxlifetime przynajmniej na tę samą wartość $ cfg ['LoginCookieValidity'].

UWAGA:

  1. Jeśli twój serwer uległ awarii i nie możesz załadować strony phpmyadmin, sprawdź dziennik apache w /var/log/apache2/error.log. Jeśli masz połączenie PHP Fatal error: Call to a member function get() on a non-object in /path/to/phpmyadmin/libraries/Header.class.phpz linią 135, zrób chmod 644 config.inc.php. to powinno zająć się błędem.
  2. Jeśli pojawi się ostrzeżenie:, 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.a następnie zmień session.gc_maxlifetime jak wspomniano powyżej.
Na zawsze
źródło
5

Tylko w przypadku instalacji LOKALNYCH możesz całkowicie usunąć login i limit czasu - wydaje się, że właśnie tego szukasz. Zmieniając typ autoryzacji na „config” i wprowadzając nazwę użytkownika bazy danych i hasło w pliku konfiguracyjnym, następuje automatyczne zalogowanie. Dodaj do 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;

Oczywiście, jeśli zrobisz to na serwerze w Internecie, pojawi się jakiś bezczelny facet, który z radością pobierze wszystkie twoje hasła i usunie twoją witrynę. To jest przeznaczone dla serwera programistycznego działającego tylko na własnym laptopie.

W dzisiejszych czasach łatwiejszym sposobem dostosowania phpmyadmin jest przejście do http://www.example.com/phpmyadmin/setup/ , zapisanie wszystkich sekcji ustawień naraz, kliknięcie zapisz lub pobranie u dołu, skopiowanie wygenerowanego pliku do główny katalog phpmyadmin, a następnie chmod go. Musisz wyłączyć uprawnienia do zapisu, nawet jeśli jest to serwer lokalny, ponieważ phpmyadmin sprawdza to, zanim pozwoli ci się zalogować.

Chris
źródło
Nazwa pliku jest nieprawidłowa, nie jest to duży problem, ponieważ większość zrozumie, co masz na myśli. Niemniej jednak poprawna nazwa toconfig.inc.php
David,
3

Przeglądaj katalog „apps \ phpmyadmin4.5.2” w folderze wamp i otwórz plik config.inc.php. Następnie dodaj tę linię pod istniejącym kodem.

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

To wszystko...

Koushik Chowdhury
źródło
1

W przypadku wersji phpMyadmin 5.0.2 działającej na Ubuntu 18.04 edytowałem plik w następujący sposób:

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

  2. znajdź metodę public static function getForms()i dodaj pole LoginCookieValidity

    public static function getForms()
    {
        $result = [
            'General' => [
                'VersionCheck',
                'NaturalOrder',
                'InitialSlidersState',
                'LoginCookieValidity', //Added this line if it missing
                ...........
          }
    
  3. zapisz plik, a teraz będziesz mógł zmienić wartość z poziomu interfejsu użytkownika.

[Ustawienia -> Ogólne -> Funkcje -> Ważność pliku cookie logowania]

sandip
źródło
Dzięki za to. Patrzyłem na odpowiedzi powyżej iz powrotem podczas instalacji 5.0.2 i myślałem, że tracę rozum! Zastanawiam się, dlaczego usunęli interfejs użytkownika, zwłaszcza jeśli nadal jest gotowy do ponownego włączenia?
Headbank
0

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

Pmpr
źródło
Ta sama odpowiedź została już opublikowana dawno temu (z wyjaśnieniem + informacją o przekroczeniu limitu czasu sesji php, którego brakuje w Twojej odpowiedzi).
Marki555
Chociaż o tym nie wspomniałem, na niektóre pytania zawsze wolę super proste odpowiedzi.
Pmpr
1
Tak, ale jeśli ustawisz ważność ciasteczka logowania na wyższą wartość niż ważność sesji w php, to nie zadziała.
Marki555
Nie wiedziałem o tym. dzięki za pouczający komentarz :)
Pmpr
-1

Mam phpmyadmin 4.9.2. i spróbuj skonfigurować LoginCookieValidity, ale mam automatyczne wylogowanie :( Jeśli używasz localhost, możesz spróbować https://docs.phpmyadmin.net/en/latest/config.html#example-for-ip-address-limited-autologin

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
źródło