Подтвердить что ты не робот

PhpMyAdmin - не может изменить время окончания сеанса

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

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

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

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

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

enter image description here

два: .htaccess файл:

php_value session.gc_maxlifetime 86400

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

enter image description here

четыре: сервер (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?

4b9b3361

Ответ 1

Ubuntu по умолчанию отключит сборщик мусора PHP-сессии (установив главное значение 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 секунд).

Ответ 2

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.

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