phpmyadmin выходит из системы через 1440 секунд


134

В моей локальной среде разработки Ubuntu я использую MySQL и phpmyadmin для работы с базой данных.

Всякий раз, когда phpmyadmin простаивает в течение 1440 секунд (24 минут), сеанс истекает. Я теряю свое место, и мне нужно войти в систему и начать все сначала.

Я пытался поменять $cfg['LoginCookieValidity'] = 3600 * 9;внутреннюю часть, config.inc.phpно все равно время ожидания истекает через 1440 секунд.

Я перезапустил все и очистил кеш браузера (история Firefox -> Очистить недавнюю историю -> Кэш -> Все).

Я не уверен, почему увеличенный тайм-аут не действует. Что я делаю не так?


5
Первое, что приходит мне в голову, вы перезапустили веб-сервер после изменения config.inc.php?
0xmtn 04

Да, я
выполнил

2
Если вы решили эту проблему, не могли бы вы опубликовать решение в качестве ответа здесь? ;)
0xmtn

Для Ubuntu 18.04 я только что отредактировал файл /usr/share/phpmyadmin/libraries/config.default.php Изменение: $ cfg ['LoginCookieValidity'] = 1440
Ахмед Исмаил

Ответы:


199

Зайдите в PHPMyAdmin в вашем браузере

Настройки> Функции> Изменить значение срока действия cookie для входа в систему> Сохранитьвведите описание изображения здесь

ПРИМЕЧАНИЕ . Вам придется делать это за сеанс.


5
Это самое быстрое и простое решение этой проблемы. Это должен быть ответ !!!
Пини Чейни

14
Это не постоянное решение. Я пробовал сделать это, но через один или два дня он снова сбрасывается до 1440 секунд.
Rolen Koh

5
Это работает только для текущего сеанса. Даже в настройках так написано.
Ричард Дуэрр

4
не забудьте обновить настройки php.inisession.gc_maxlifetime = SAME_OR_BIGGER_VALUE_AS_PHPMYADMIN
Лукас Лисис

7
К вашему сведению: не лучший вариант.
Абдулла Нилам

70

Добавьте эту строку в /config.inc.php:

$cfg['LoginCookieValidity'] = 36000;

В /setup/lib/index.lib.php

$cf->getValue('LoginCookieValidity') > 36000;

Если у вас еще нет файла .htaccess для вашего сайта phpMyAdmin, создайте его и добавьте следующую строку, чтобы переопределить время ожидания сеанса PHP по умолчанию:

php_value session.gc_maxlifetime 36000

Я бы не рекомендовал изменять это значение в вашем основном файле php.ini, так как это допускает смехотворно долгий тайм-аут сеанса для всех ваших PHP-сайтов.

источник: http://www.sitekickr.com/blog/increase-phpmyadmin-timeout/


1
если я могу добавить к этому, также измените в config.default.php строку 698 из $ cfg ['LoginCookieValidity'] = 1440; в $ cfg ['LoginCookieValidity'] = 36000;
mstation

1
вместо того, чтобы поместить первую строку, phpmyadmin/config.inc.phpпоместите его в новый файл в каталоге, phpmyadmin/conf.dчтобы он не был перезаписан при обновлении
zelcon

5
Вы также можете расширить gc_maxlifetime, добавив в файл config.inc.php следующее (обычно это каталог / etc / phpmyadmin): ini_set ('session.gc_maxlifetime', '36000'); Это также локализует его в phpmyadmin и не повлияет на период сборки мусора других PHP-скриптов. И на основании документации файл config.inc.php предназначен для изменения поведения - см. Docs.phpmyadmin.net/en/latest/config.html . Таким образом, не стоит беспокоиться об изменении этого файла при обновлении.
ReverseEMF

1
Я только что попробовал это, и похоже, что шаг 2 не нужен. Только изменение файла конфигурации и изменение .htaccess.
Энди Мерсер

Для Ubuntu 18.04 файл/usr/share/phpmyadmin/libraries/config.default.php
Ахмед Исмаил

52

Мы можем изменить функцию сеанса cookie в:

Настройки-> Функции-> Общие-> Срок действия куки-файла для входа

Я нашел ответ здесь. Никакой активности в течение 1440 секунд; Пожалуйста, войдите снова

РЕДАКТИРОВАТЬ:

Это решение будет работать только для текущего сеанса, для постоянного изменения сделайте:

Откройте файл config.inc.php в корневом каталоге phpMyAdmin.

папка wamp: wamp \ apps \ phpmyadmin {версия} \ config.inc.php

Ubuntu: / etc / phpmyadmin

добавить эту строку

$cfg['LoginCookieValidity'] = <your_timeout>;

пример

$cfg['LoginCookieValidity'] = '144000';

9
Вы должны изменить session.gc_maxlifetimeв php.ini значение выше, чем значение по умолчанию: 1440 тоже.
М Ростами

5
Этот ответ очень неполный и не должен быть лучшим в голосовании. Изменение настроек дает следующее предупреждение: «Ваши настройки будут сохранены только для текущего сеанса. Для их постоянного хранения требуется хранилище конфигурации phpMyAdmin».
Fivedogit

@fivedogit здесь Я разместил более полный ответ, который отлично работает в отношении этого ответа.
Mojtaba Rezaeian

Обратите внимание, что вы не можете установить значение больше 9223372036854775806, иначе это приведет к переполнению целого числа.
egdavid

23

Вы можете изменить функцию сеанса cookie в веб-интерфейсе phpmyadmin.

Settings->Features->General->Login cookie validity

ИЛИ

Если вы хотите изменить «достоверность файла cookie для входа в систему» ​​в файле конфигурации, откройте файл конфигурации phpmMyAdmin config.inc.phpв корневом каталоге PHPMyAdmin (обычно это корневой каталог / etc / phpmyadmin /).

После поиска файла config.inc.php найдите строку ниже и задайте для нее значение секунд, для которого phpmyadmin должен превышать время ожидания:

$cfg['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, тогда сделайте 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 как указано выше.

16

Кажется, есть пользовательский интерфейс для изменения конфигураций phpmyadmin. Запустите apache и щелкните следующую ссылку

http://localhost/phpmyadmin/setup/index.php?page=form&formset=Features#tab_Security


2
Эта ссылка ведет к настройке phpMyAdmin . Менять настройки рабочего приложения через скрипт установки немного рискованно, не правда ли?
Трейдер

13

Шаги для этого phpMyAdmin settingsбез каких-либо проблем или требований изменить конфигурацию в php my.ini или определить файл .htaccess:

  1. Перейдите к phpMyAdminпути установки (например, / usr / share / phpMyAdmin / на моем centos7) и найдите create_tables.sqlв одной из его подпапок ( phpMyAdmin/sql/create_tables.sqlв моей версии 4.4.9.) И выполните все содержимое файла на вашем текущем сайте phpMyAdmin из вашего веб-браузера. Это создаст базу данных с именем, phpmyadminкоторая может сохранить все ваши параметры phpMyAdmin сохраненными навсегда.
  2. В phpMyAdmin config.inc.php(расположенном в / etc / phpMyAdmin / на моем сервере centos7) найдите закомментированную строку $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';и раскомментируйте ее (теперь phpMyAdmin будет использовать ту пользовательскую базу данных, которую мы создали на предыдущем шаге).
  3. Перейдите phpMyAdminиз веб-браузера и перейдите, Server >> Settings >> Features >> "Login Cookie Validity"как на картинке, описанном Pavnish, и установите желаемое значение. Это работает сейчас.

Ссылки : Niccolas ответ , PhpMyAdmin конфигурация хранение , flashMarks Ответ


Это не работает на phpMyAdmin 4.8.3. Снова делаем простое сложным. Я помню, до этого обновления (я использовал 4.4 или около того) все работало нормально через Сервер >> Настройки >> Функции, как сказано здесь. Уже нет. Config.inc.php не идет с этой строкой
luisfer

8

Затем вы получите еще одно предупреждение: «Ваш параметр PHP session.gc_maxlifetime ниже, чем срок действия cookie, настроенный в phpMyAdmin, из-за этого ваш логин истечет раньше, чем настроено в phpMyAdmin.». Это имеет смысл, потому что сессия php в любом случае будет по таймауту. Поэтому нам нужно изменить /etc/php.ini.

session.gc_maxlifetime = 43200
Thats 12 hours in seconds. 

Перезагрузите сервер Apache, и все готово!

источник: http://birdchan.com/home/2011/06/06/phpmyadmin-timeout-after-1440-seconds/

это работает для меня! :)


7

Вы должны перезапустить apache или httpd, а не mysqld

sudo service httpd restart

или

sudo /etc/init.d/apache2 restart

Теперь я перезапустил apache с помощью команды ur (т.е. sudo /etc/init.d/apache2 restart), но phpmyadmin все равно выходит из системы через 1440 секунд.
Сандип

1
Вы видите ошибку « Нет активности в течение 1440 секунд; пожалуйста, войдите снова » или просто выходит из системы? Если он выходит из системы, проверьте session.gc_maxlifetimeваш /etc/php.ini, какова ценность этого?
0xmtn

да, я вижу это сообщение: «Нет активности в течение 1440 секунд; пожалуйста, войдите снова»
sandeep

1
Это действительно странно. Не могли бы вы также установить session.gc_maxlifetime=3600*9в /etc/php.ini и перезапустить веб-сервер и повторить попытку? Просто для более быстрой отладки установите оба параметра ( session.gc_maxlifetimeи $cfg['LoginCookieValidity']) на что-то небольшое, например, 50 (секунд), а затем перезапустите веб-сервер, очистите кеш браузера и повторите попытку.
0xmtn 04

Не могли бы вы пояснить, как перезапуск службы должен изменить конфигурацию чего-либо?
Трейдер

7

Вы просто увеличиваете время ожидания сеанса phpMyAdmin, открываете config.inc.php в корневом каталоге phpMyAdmin и добавляете эту строку.

из пути к папке wamp wamp \ apps \ phpmyadmin4.0.4 \ config.inc.php

$cfg['LoginCookieValidity'] = <your_timeout>;

пример

$cfg['LoginCookieValidity'] = '1440';

Примечание: короткое время жизни cookie - это хорошо для сервера разработки, а не для вашего производственного сервера.


7

1) Войдите в phpMyAdmin. 2) На главном экране нажмите «Дополнительные настройки» (для меня средняя часть экрана). 3) Нажмите вкладку «Функции» в верхней части экрана. 4) На 20 дней установите для параметра «Срок действия cookie для входа» значение 1728000 5) Применить.

php xampp


6

Чтобы установить cookie постоянно, вам необходимо выполнить несколько шагов

Перейти-> /etc/phpmyadmin/config.inc.phpфайл

добавить этот код

$cfg['LoginCookieValidity'] = <cookie expiration time in seconds > 

5

Это не работает. Сессия PHP истекает в любом случае через 1440 секунд.

Изменить в PHP.iniэтом тоже:

session.gc_maxlifetime = 3600

http://www.phpmyadmin.net/documentation/Documentation.html#config

Также из PHP.ini:

Если вы используете опцию подкаталога для хранения файлов сеанса

; (см session.save_path выше), то сбор мусора делает не

; произойдет автоматически. Вам нужно будет сделать свой собственный мусор

; Сбор с помощью сценария оболочки, записи cron или другого метода.

; Например, следующий скрипт будет эквивалентен

; установка session.gc_maxlifetime на 1440 (1440 секунд = 24 минуты):

; CD / путь / к / сессий; найти -cmin +24 | XARGS RM


5

изменить в файле php.in из wampicon / php / php

session.gc_maxlifetime = 1440

в

session.gc_maxlifetime = 43200

4

Если параметр $cfg['LoginCookieValidity']не вступает в силу в config.inc.phpфайле, попробуйте отключить session.gc_maxlifetimeв файле php.ini, поставив точку с запятой слева следующим образом:

; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
; http://php.net/session.gc-maxlifetime
; session.gc_maxlifetime = 1440

Или попробуйте отключить оба $cfg['LoginCookieValidity']и session.gc_maxlifetime = 1440закомментировать оба.

Тогда phpMyAdmin больше не должен выходить из системы во время простоя. У меня работает на Windows. Не забудьте очистить кеш браузера и перезапустить веб-сервер.


я почти забыл. После внесения этих изменений очистите кеш браузера и перезапустите веб-сервер! ура приятель.
Alex

Я думаю, что это на самом деле $cfg['Servers'][$i]['LoginCookieValidity'], а не то $cfg['LoginCookieValidity'], что должно быть установлено, если у вас есть многосерверная конфигурация phpMyAdmin в config.inc.php. И нет, комментирование $cfg['Servers'][$i]['LoginCookieValidity']не принесет никакого результата, так как это значение по умолчанию пропало. Таким образом, когда этот параметр закомментирован или удален, phpMyAdmin, похоже, возвращается к значениям по умолчанию 1440.
Трейдер

4

шаги, чтобы изменить срок действия куки

шаг 1: перейдите в настройки Phpmyadmin

Шаг 2: Общие

шаг 3: действительность файла cookie для входа

Шаг 4. Обновите время истечения печенья по умолчанию на 1440 секунд, добавив новое значение.


3
он будет работать только для определенного сеанса, после чего он снова установится на 1440 секунд
Нареш Дудхат

2

Если у вас есть настройка хранилища конфигурации phpmyadmin , настройки будут извлечены из вашей таблицы phpmyadmin.pma__userconfig и переопределят все, что у вас есть в config.inc.php. В этой таблице каждому пользователю MYSQL может быть назначен другой набор настроек phpmyadmin.


1

После того как я попробовал все предложенные здесь методы и продолжал выходить из системы, я обратился к написанию небольшого пользовательского скрипта для Tampermonkey, так как это расширение у меня уже есть. Это очень просто и просто отправляет запрос в один из скриптов PHPMyAdmin с низкой занимаемой площадью каждую минуту. Вот код:

// ==UserScript==
// @name         PHPMyAdmin Keep Session Alive
// @namespace    https://www.bitwizeor.io/
// @version      0.1
// @description  No more nasty PHPMyAdmin session expiries
// @match        http://localhost/phpmyadmin/*
// ==/UserScript==

(function() {
    'use strict';
    console.log('PHPMyAdmin Keep Session Alive activated');
    var url;
    window.setInterval(function(){
        url = $("#serverinfo a:eq(1)").prop("href");
        url += '&ajax_request=true&ajax_page_request=true';
        $.getJSON(url);
        console.log('pinging ...');
    }, 60000);
})();

1

=== метод 1 с http логином ===

[php.ini]
session.gc_maxlifetime = 86400

[config.inc.php]

$cfg['Servers'][$i]['auth_type']     = 'http';

=== метод 2 с логином cookie ===

[php.ini]

session.gc_maxlifetime = 86400

[config.inc.php]

$cfg['Servers'][$i]['auth_type']     = 'cookie';

$cfg['Servers'][$i]['LoginCookieValidity'] = 86400;

$cfg['Servers'][$i]['pmadb']         = 'phpmyadmin';

$cfg['Servers'][$i]['controluser']   = 'phpmyadmin_pma';

$cfg['Servers'][$i]['controlpass']   = 'nigookike';

$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; // there's a lot of other table required for full functionality,
                                                                         // all others can be left out unconfig except this one

[mysql]
-import phpMyAdmin/sql/create_tables.sql

-grant PRIVILEGES to phpmyadmin_pma as below

db/table

phpmyadmin  ALL PRIVILEGES 

mysql/db    SELECT

mysql/host  SELECT

mysql/tables_priv   USAGE

mysql/user  USAGE


-clear all entries should old one exists

phpmyadmin/pma__userconfig

[webUI]

-clear broswer cookie

-as normal mysql user, access http://mysql/phpmyadmin , at the bottom of page:

    The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. [Find out why.]

-near top of the page

    [Create missing phpMyAdmin configuration storage tables.]

-access http://mysql/phpmyadmin > settings > features > Login cookie validity > 86400 > [apply]

-check phpmyadmin/pma__userconfig contain new entries of aforemention mysql user

NB

  1. у каждого пользователя есть независимые настройки, и процедура [webUI] должна повторяться для каждого пользователя

  2. если «Хранилище конфигурации phpMyAdmin настроено не полностью, некоторые расширенные функции были отключены. [Узнайте, почему.]»

ссылка не отображается на главной странице, перейдите в настройки> функции> предупреждения> Отсутствуют таблицы хранения конфигурации phpMyAdmin> несколько раз [обновить] заставит ее появиться


Пожалуйста, отформатируйте этот фрагмент правильно. В противном случае он почти не читается - хотя контент выглядит многообещающим.
Игорь

0

Я нашел решение и успешно его использую уже некоторое время.

Просто установите это дополнение в свой браузер FF.


3
Отличное предложение, так как весь мир использует Firefox. Чтобы пометить это как ответ, вы должны были по крайней мере предложить дополнения для более чем одного браузера - поскольку большинство обычных людей используют приличный браузер, такой как Google Chrome ..

5
использование аддона для такой специфической и тривиальной проблемы кажется мне ошеломляющим.
saimiris_devel

1
Это не отвечает на вопрос. Это не должно быть принятым ответом. Вы спрашивали: «Я не уверен, почему увеличенный тайм-аут не действует. Что я делаю не так?"
Филипп-Андре Лорин

это совершенно неуместный ответ. Либо пользователю нужно изменить «выбранный ответ», либо мы привлекаем модератора, чтобы разобраться в этом?
Звезда

0

Это сработало для меня после того, как я

  • изменилось $cfg['LoginCookieValidity']в (phpmyadmin folder)/libraries/config.default.phpк 999999999.

  • проверил php.iniиспользуемый phpmyadmin php5 -i | grep php.ini.

  • пошел к php.iniфайлу, путь которого я получил из вывода команды grep и изменил session.gc_maxlifetimeзначение на 999999999.

  • перезапустил сервер. В моем случае это было sudo service apache2 restart.

Готово. Зайдите в phpmyadmin и проверьте правильность использования cookie в Настройках -> Функции -> Общие -> Срок действия cookie для входа. Это было 999999999. Также не было предупреждения "Ваш параметр PHP session.gc_maxlifetime ниже, чем срок действия cookie ...". Предупреждение появилось после того, как я вошел в phpmyadmin, прежде чем я изменилphp.ini файл.

Проверьте версию php, используемую phpmyadmin. Вы должны изменить INI-файл php, который используется phpmyadmin. У меня установлены как php5, так и php (т.е. 7). Но мой phpmyadmin использует php5. Поэтому мне пришлось искать ini-файл php5.


0

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

Я использую Ubuntu 17.10.

Я заархивировал /etc/phpmyadmin/config.inc.php и заменил его содержимое содержимым /usr/share/phpmyadmin/config.sample.inc.php.

Затем я

 1) Enabled (uncommented) all the options under "Storage database and tables"; 
 2) Included "ini_set('session.gc_maxlifetime', 86400);" underneath the uncommented items; and 
 3) Provided a 32 character sequence for the $cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */, which is above the uncommented items.

Я сохранил файл и перезапустил phpMyAdmin.

Я выбрал Сервер: localhost -> Настройки -> Функции и изменил значение «Срок действия cookie для входа в систему» ​​на 86400 (24 часа). Обратите внимание, что любое не указанное по умолчанию значение приведет к тому, что цвет фона этой опции станет желтым, поэтому не пугайтесь его. Значение должно быть меньше или равно значению, которое вы использовали в config.inc.php.

Я сохранил настройки, вышел и перезапустил phpMyAdmin.

Наконец все сообщения исчезли. Мой сеанс остается активным в соответствии с настройками (в данном случае весь день), и мои настройки запоминаются.

Надеюсь, это кому-нибудь поможет. Мне было неприятно иметь дело и решать.


0

установите сюда свой установленный wamp, затем перейдите в wamp, затем в приложения, затем в папку с версией phpmyadmin, затем перейдите в библиотеки, затем отредактируйте файл config.default.php, например

E: \ WAMP \ приложения \ phpmyadmin4.6.4 \ библиотеки \ config.default.php

здесь вы должны изменить

$ cfg ['LoginCookieRecall'] = true;

в

$ cfg ['LoginCookieRecall'] = false;

также вы можете изменить время cookie, чтобы отключить отзыв cookie

$ cfg ['LoginCookieValidity'] = 1440;

в

$cfg['LoginCookieValidity'] = anthing grater then 1440 

мой

 $cfg['LoginCookieValidity'] = 199000;

после изменения перезагрузите ваш сервер введите описание изображения здесь

также есть другой метод, но он сбрасывается, когда мы перезапускаем наш сервер Wamp, и вот этот метод также

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

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


0

Для Ubuntu 18.04 я только что отредактировал файл /usr/share/phpmyadmin/libraries/config.default.php

Изменить: $cfg['LoginCookieValidity'] = 1440

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.