час автоматичного виходу з phpmyadmin


89

Як я можу змінити час автоматичного виходу з phpmyadmin?

Він автоматично вийде з системи через 1440 секунд, що для мене дуже мало. Як я можу змінити опцію або повністю видалити запит на вхід?

Відповіді:


87

Створіть або відредагуйте свій php.iniфайл і встановіть у ньому це значення змінної:

session.gc_maxlifetime = 1440

Ціле число в секундах. 500000 секунд - це 5,7 днів. Потім перезапустіть apache.


2
так що відкрийте свій файл php.ini і збільште значення session.gc_maxlifetime, ось і все.
Ravinder Singh

10
погана відповідь, проблеми з безпекою!
Себастьян Вірек,

1
Вам також може знадобитися оновити $ cfg ['LoginCookieValidity'] у файлі phpmyadmin config.inc.php.
Хорхе Орпінель

5
@ slaver113 У цьому випадку я б сказав, що безпека в порядку, оскільки це середовище розробки, це НЕ добре для будь-якого виробничого середовища. Я волів би бачити, що це згадується у відповіді.
Мануель

8
Це не має нічого спільного з таймаутом PHPMyAdmin. Не знаю, чому за нього так високо голосують. Це навіть не пов’язано з питанням.
felwithe

113

Зміна php.ini змінить тривалість сеансу для всіх веб-сайтів, що працюють на сервері. Щоб змінити його лише для PhpMyAdmin, відкрийте config.inc.phpта додайте:

$sessionDuration = 60*60*24*7; // 60*60*24*7 = one week
ini_set('session.gc_maxlifetime', $sessionDuration);
$cfg['LoginCookieValidity'] = $sessionDuration;

21
здається, існує інтерфейс для встановлення змінних config.php на localhost / phpmyadmin / setup /… - див.
Діяльність

Це налаштування інтерфейсу трохи заплутане, але працює для встановлення пароля в конфігурації для автоматичного входу та встановлення часу закінчення сеансу. Проголосувати.
Антоніо Макс

1
Необмежений час начебто неможливий, оскільки кожен файл cookie має дату "Дійсний до", але ви можете просто ввести дуже велику кількість.
Марсель Буркхард,

5
Це має бути відповіддю. Питання задало, як змінити phpMyAdmin. Ця відповідь вирішує це конкретно.

1
Вам також потрібно змінити шлях до файлів cookie. Оскільки, якщо gc_maxlifetime визначено для іншого веб-сайту, gc видалить усі файли cookie при першому зверненні до веб-сайту. Ви можете додати ці 2 рядки у файл /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

У PHPMyAdmin 4 це більше не відображається у файлі config.inc.php. Замість цього перейдіть до PHPMyAdmin у своєму браузері. Переконайтесь, що ви перебуваєте на рівні localhost, щоб побачити посилання Налаштування. Потім встановіть "Налаштування"> "Функції"> "Змінити значення" Термін дії файлів cookie для входу "> Зберегти

інструкції


Зверніть увагу: існує обмеження щодо кількості символів, які ви можете ввести в це поле.
Kohjah Breese

1
Зміна інтерфейсу не працює для мене. Він все одно виходить із системи занадто швидко, незалежно від того, наскільки більшим є термін дії файлів cookie для входу .
dani24

4
@ dani24, ти отримував це повідомлення Your preferences will be saved for current session only. Storing them permanently requires phpMyAdmin configuration storage.:? Клацніть на посилання в ньому, і воно дасть вам вказівки щодо можливості постійного зберігання змін.
Параплуї

phpMyAdmin покаже цю помилку. 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.Вам доведеться застосувати відповідь Равіндера Сінгха, а також цю.
Авраам Мурчіано Бензадон,

7
Недоступно у версії 4.8.4
Танасіс

11

Ви можете змінити функцію сеансу часу cookie за допомогою веб-інтерфейсу phpmyadmin

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

АБО

Якщо ви хочете змінити 'дійсність файлу cookie для входу' у файлі конфігурації, відкрийте файл конфігурації phpmMyAdmin config.inc.phpу кореневому каталозі PHPMyAdmin. (Кореневий каталог зазвичай / etc / phpmyadmin /)

Знайшовши config.inc.php, знайдіть рядок нижче і встановіть для нього значення секунд, для яких очікується час очікування phpmyadmin:

['LoginCookieValidity'] 

Якщо вам не вдалося знайти наведений вище рядок, просто додайте наступне:

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

Наприклад:

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

Час очікування встановлено на 3 години з наведеного вище прикладу.

session.gc_maxlifetimeможе обмежити термін дії сеансу, і якщо сеанс втрачено, файл cookie для входу також втрачає силу. Отже, нам може знадобитися встановити session.gc_maxlifetime у php.iniфайлі конфігурації (розташування файлу - / etc / php5 /apache2/php.ini в ubuntu).

session.gc_maxlifetime = 3600 * 3


Документація phpMyAdmin щодо LoginCookieValidity

$ cfg ['LoginCookieValidity']

Тип: ціле число [кількість секунд]
Значення за замовчуванням: 1440

Визначте, як довго діє файл cookie для входу. Зверніть увагу, що параметр конфігурації php session.gc_maxlifetime може обмежити термін дії сеансу, і якщо сеанс втрачено, файл cookie для входу також стає недійсним. Тож є гарною ідеєю встановити session.gc_maxlifetime принаймні на те саме значення $ cfg ['LoginCookieValidity'].

ПРИМІТКА:

  1. Якщо ваш сервер вийшов з ладу і не може завантажити вашу сторінку phpmyadmin, перевірте свій журнал Apache за адресою /var/log/apache2/error.log. Якщо ви потрапили PHP Fatal error: Call to a member function get() on a non-object in /path/to/phpmyadmin/libraries/Header.class.phpна рядок 135, то виконайте a chmod 644 config.inc.php. що має подбати про помилку.
  2. Якщо ви отримали попередження:, 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.змініть, session.gc_maxlifetime як зазначено вище.

5

Лише для встановлення LOCAL ви можете взагалі видалити логін та час очікування - це, здається, саме те, що вам потрібно. Змінивши тип авторизації на "config" та ввівши ім'я користувача та пароль бази даних у своєму файлі конфігурації, ви автоматично ввійдете в систему. Додати до 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;

Звичайно, якщо ви зробите це на сервері в Інтернеті, прийде якийсь нахабний хлопець і радісно завантажить усі ваші паролі та видалить ваш веб-сайт. Це призначено для сервера розробки, який працює на вашому власному ноутбуці.

У наш час простіше налаштувати phpmyadmin - перейти на http://www.example.com/phpmyadmin/setup/ , зберегти за раз усі розділи налаштувань, клацнути зберегти або завантажити внизу, скопіювати створений файл кореневий каталог phpmyadmin, а потім chmod його. Вам потрібно вимкнути дозвіл на запис, навіть якщо це локальний сервер, оскільки phpmyadmin перевіряє це, перш ніж він дозволить вам увійти в систему.


Назва файлу неправильна, не велика проблема, оскільки більшість зрозуміє, що ви маєте на увазі. Проте правильна назваconfig.inc.php
Девід

3

Дослідіть каталог 'apps \ phpmyadmin4.5.2' у вашій папці wamp і відкрийте файл config.inc.php. Потім додайте цей рядок під наявний код.

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

Це все...


1

Для phpMyadmin 5.0.2, що працює на Ubuntu 18.04, я відредагував файл наступним чином:

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

  2. знайти метод public static function getForms()і додати поле LoginCookieValidity

    public static function getForms()
    {
        $result = [
            'General' => [
                'VersionCheck',
                'NaturalOrder',
                'InitialSlidersState',
                'LoginCookieValidity', //Added this line if it missing
                ...........
          }
    
  3. збережіть файл, і тепер ви зможете змінити значення з інтерфейсу користувача.

[Налаштування -> Загальне -> Особливості -> Термін дії файлів cookie для входу]


Дякую за це. Я дивився на відповіді вище, і знову на мою інсталяцію 5.0.2, і думав, що втрачаю розум! Цікаво, чому вони видалили інтерфейс, особливо якщо він все ще готовий до відновлення?
Headbank

0

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


Та сама відповідь була вже давно опублікована (і з поясненням + інформацією про час очікування сеансу php, якого у вашій відповіді не вистачає).
Marki555

Хоча я не згадував, я завжди віддаю перевагу супер простим відповідям на певні типи питань.
Pmpr

1
Так, але якщо ви встановите дійсність файлів cookie для входу вище значення, ніж термін дії сеансу в php, це не буде працювати.
Marki555

Я не знав цього. дякую за ваш інформативний коментар :)
Pmpr

-1

У мене є phpmyadmin 4.9.2. і спробуйте налаштувати LoginCookieValidity, але у мене є автоматичний вихід :( Якщо ви використовуєте localhost, ви можете спробувати 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';
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.