Я знаю, что этот вопрос много раз задавался на 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?
Ubuntu по умолчанию отключит сборщик мусора сессии PHP (установив значение master в session.gc_probability
в 0
), а вместо этого используйте cronjob для удаления файлов сеанса после того, как они достигли определенного возраста. Возраст определяется по основному значению session.gc_maxlifetime
,
Это означает, что независимо от вашего локального значения 86400 секунд (которое не действует из-за отключенной сборки мусора сеанса), cronjob удалит файлы сеансов через 1440 секунд.
Итак, у вас есть 2 варианта:
Отключить cronjob (возможно /etc/cron.d/php5
) и включите сборщик мусора сессии PHP, установив session.gc_probability
в 1
(в все /etc/php5/*/php.ini
файлы).
Установите правильное главное значение для session.gc_maxlifetime
, У тебя 1440 секунд. Измените это (в все /etc/php5/*/php.ini
файлы) с наибольшим локальным значением, используемым любым приложением виртуального хоста / php на сервере (не менее 86400 секунд).
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.
Или используйте надстройку браузера