phpMyAdmin — не может изменить время истечения сеанса

Я знаю, что этот вопрос много раз задавался на SO сайте. Тем не менее, я прочитал этот, этот, этот, этот, этот а также этот, и больше. Никто из них не работал. Я также пытался изменить расположение файлов сеанса и другие вещи, которые я сейчас не помню.

Моя настройка:

один: config.inc.php файл:

<?php
$cfg['LoginCookieValidity'] = 3600 * 24; // http://docs.phpmyadmin.net/en/latest/config.html#cfg_LoginCookieValidity

это отображается в настройках phpMyAdmin:

введите описание изображения здесь

два: .htaccess файл:

php_value session.gc_maxlifetime 86400

три: phpinfo.php Файл из корня phpMyAdmin показывает:

введите описание изображения здесь

четыре: сервер (uname -a):

Linux ubuntu-13 3.11.0-26-generic #45-Ubuntu SMP Tue Jul 15 04:02:06 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Есть ли другой способ увеличить время ожидания сеанса phpMyAdmin?

17

Решение

Ubuntu по умолчанию отключит сборщик мусора сессии PHP (установив значение master в session.gc_probability в 0), а вместо этого используйте cronjob для удаления файлов сеанса после того, как они достигли определенного возраста. Возраст определяется по основному значению session.gc_maxlifetime,

Это означает, что независимо от вашего локального значения 86400 секунд (которое не действует из-за отключенной сборки мусора сеанса), cronjob удалит файлы сеансов через 1440 секунд.

Итак, у вас есть 2 варианта:

  1. Отключить cronjob (возможно /etc/cron.d/php5) и включите сборщик мусора сессии PHP, установив session.gc_probability в 1все /etc/php5/*/php.ini файлы).

  2. Установите правильное главное значение для session.gc_maxlifetime, У тебя 1440 секунд. Измените это (в все /etc/php5/*/php.ini файлы) с наибольшим локальным значением, используемым любым приложением виртуального хоста / php на сервере (не менее 86400 секунд).

9

Другие решения

PhpMyAdmin должен нормально работать с вашими конфигурациями, возможно, вы что-то напутали, когда пытались заставить его работать. так как вы не можете переустановить phpmyadmin или выполнить обновление на сервере. Есть и другие решения этой проблемы.

Взломать ядро

Я не думаю, что это хорошая идея, но если вы действительно хотите избавиться от этого, вы можете отключить эту функцию, изменив AuthenticationCookie.class.php в libraries/plugins/auth/

иди по этой линии

    if ($_SESSION['last_access_time'] < $last_access_time
) {
PMA_Util::cacheUnset('is_create_db_priv', null);
PMA_Util::cacheUnset('is_process_priv', null);
PMA_Util::cacheUnset('is_reload_priv', null);
PMA_Util::cacheUnset('db_to_create', null);
PMA_Util::cacheUnset('dbs_where_create_table_allowed', null);
$GLOBALS['no_activity'] = true;
$this->authFails();
if (! defined('TESTSUITE')) {
exit;
} else {
return false;
}
}

и отредактируйте его

    if (false
) {
PMA_Util::cacheUnset('is_create_db_priv', null);
PMA_Util::cacheUnset('is_process_priv', null);
PMA_Util::cacheUnset('is_reload_priv', null);
PMA_Util::cacheUnset('db_to_create', null);
PMA_Util::cacheUnset('dbs_where_create_table_allowed', null);
$GLOBALS['no_activity'] = true;
$this->authFails();
if (! defined('TESTSUITE')) {
exit;
} else {
return false;
}
}

При этом функция будет отключена, и время ожидания больше не будет. Вы всегда можете нажать на выход из системы, когда завершите работу с phpmyadmin.

Или используйте надстройку браузера

2

По вопросам рекламы [email protected]