Время автоматического выхода phpmyadmin


89

Как я могу изменить время автоматического выхода phpmyadmin?

Он автоматически выйдет из системы через 1440 секунд, что для меня очень мало. Как я могу изменить опцию или полностью удалить запрос на вход?

Ответы:


87

Создайте или отредактируйте свой php.iniфайл и установите в нем это значение переменной:

session.gc_maxlifetime = 1440

Целое число выражается в секундах. 500000 секунд - это 5,7 суток. Затем перезапустите apache.


2
так что откройте файл php.ini и увеличьте значение session.gc_maxlifetime, вот и все.
Равиндер Сингх,

11
плохой ответ, проблемы с безопасностью!
Себастьян Вирек

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

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 /… - см. Срок действия
cookie для

Этот параметр пользовательского интерфейса немного сбивает с толку, но работает для установки пароля в конфигурации для автоматического входа в систему и установки времени окончания сеанса. Голосовать за.
Антонио Макс

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 в своем браузере. Убедитесь, что вы находитесь на уровне локального хоста, чтобы увидеть ссылку «Настройки». Затем установите Настройки> Функции> Измените значение «Срок действия cookie для входа»> Сохранить.

инструкции


NB, похоже, существует ограничение на количество символов, которое вы можете ввести в это поле.
Kohjah Breese

1
Изменение пользовательского интерфейса у меня не работает. Он по-прежнему выходит из системы слишком быстро, независимо от того, насколько больше срок действия cookie для входа .
dani24

4
@ dani24, вы получили это уведомление: Your preferences will be saved for current session only. Storing them permanently requires phpMyAdmin configuration storage.? Щелкните ссылку в нем, и вы получите инструкции по включению возможности постоянного хранения изменений.
Parapluie

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
Thanasis

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

Только для ЛОКАЛЬНЫХ установок вы можете полностью удалить логин и тайм-аут - похоже, это то, что вам нужно. Изменив тип авторизации на "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.