phpMyAdmin-не удается изменить время окончания сеанса
Я знаю, что этот вопрос задавался много раз на веб-сайте SO. Однако я читал этой, этой, этой, этой, этой и этой и многое другое. Ни одна из них не сработала. Я также попытался изменить местоположение файлов сеанса и другие вещи, которые я сейчас не помню.
Мои настройки:
первая::
<?php
$cfg['LoginCookieValidity'] = 3600 * 24; // http://docs.phpmyadmin.net/en/latest/config.html#cfg_LoginCookieValidity
это проявляется в настройки phpMyAdmin:
второй: :
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?
2 ответов
Ubuntu по умолчанию отключит сборщик мусора сеанса PHP (установив основное значение session.gc_probability
до 0
), а вместо этого используйте cronjob для удаления файлов сеанса по достижении определенного возраста. Возраст определяется ведущим значением session.gc_maxlifetime
.
это означает, что независимо от вашего локального значения 86400 секунд (которое не влияет из-за отключенной сборки мусора сеанса) cronjob удалит файлы сеансов после 1440 считанные секунды.
таким образом, у вас есть 2 варианта:
отключить cronjob (возможно
/etc/cron.d/php5
) и включите сборщик мусора сеанса PHP, установивsession.gc_probability
до1
(in все/etc/php5/*/php.ini
файлы).установите правильное значение master для
session.gc_maxlifetime
. Твой 1440 секунд. Alter it (in все/etc/php5/*/php.ini
files) к наибольшему локальному значению, которое использует любое приложение virtual host / 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.
или использовать браузер add-on
- в Firefox Phpmyadmin Тайм-Аут Preveneter