phpmyadmin вимикається через 1440 сек


134

У вікні Ubuntu локальної розробки я використовую MySQL та phpmyadmin для роботи з базою даних.

Щоразу, коли phpmyadmin не працює протягом 1440 секунд (24 хв), сеанс закінчується. Я втрачаю своє місце і мушу увійти та почати спочатку.

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

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

Я не впевнений, чому збільшений час очікування не вступає в силу. Що я роблю неправильно?


5
Перше, що мені спадає на думку, це ви перезапустили веб-сервер після зміни config.inc.php?
0xmtn

Так, я запустив цю команду: sudo service mysql restart
sandeep

2
Якщо ви вирішили цю проблему, чи можете ви опублікувати рішення як відповідь тут? ;)
0xmtn

Для Ubuntu 18.04 я щойно відредагував файл /usr/share/phpmyadmin/libraries/config.default.php Змінити: $ cfg ['LoginCookieValidity'] = 1440
Ахмед Ісмаїл

Відповіді:


199

Перейдіть на PHPMyAdmin у своєму браузері

Налаштування> Функції> Змінення значення дій печива для входу> Зберегтивведіть тут опис зображення

ПРИМІТКА : Вам доведеться робити це за сеанс.


5
Це найшвидше і найпростіше рішення цієї проблеми. Це має бути відповідь !!!
Піні Чейні

14
Це не постійне рішення. Я намагався робити це, але через один-два дні він знову скидається на 1440 секунд.
Rolen Koh

5
Це працює лише для поточного сеансу. Це навіть говорить в налаштуваннях.
Річард Дуерр

4
не забудьте оновити налаштування php.inisession.gc_maxlifetime = SAME_OR_BIGGER_VALUE_AS_PHPMYADMIN
Лукас Ліїс

7
FYI: не найкращий варіант. Це зберігається лише на поточній сесії
Абдулла Нілам

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;
мстація

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 . Таким чином, жодних побоювань щодо того, щоб цей файл змінився оновленням.
РеверсEMF

1
Я просто спробував це, і схоже, що крок 2 не потрібен. Просто змінити файл конфігурації та зміни .htaccess.
Енді Мерсер

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

52

Ми можемо змінити функцію часу сеансу cookie на:

Налаштування-> Особливості-> Загальні-> Дійсність файлів 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_maxlifetimephp.ini на значення вище за замовчуванням: також 1440.
M Rostami

5
Ця відповідь дуже неповна, і вона не повинна бути головою, що отримує голоси. Зміна налаштувань дає таке попередження: "Ваші налаштування будуть збережені лише для поточного сеансу. Для їх постійного зберігання потрібне зберігання конфігурації phpMyAdmin."
п’ятидогі

@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

Визначте, як довго діє печиво для входу. Зверніть увагу, що параметр налаштування 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з веб-браузера та goto, Server >> Settings >> Features >> "Login Cookie Validity"як на малюнку, описаному Pavnish, і встановіть потрібне значення. Це працює і зараз.

Список літератури : Niccolas , зберігання конфігурації PhpMyAdmin , відповідь flashMarks


Це не працює на phpMyAdmin 4.8.3. Знову робимо простий комплекс. Я пам’ятаю, до цього оновлення (я використовував 4.4 або більше) все працювало нормально через Сервер >> Налаштування >> Feagtures, як тут сказано. Більше не. У 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), але все ще phpmyadmin виходить із системи через 1440 секунд.
сн.

1
Ви бачите помилку " Немає активності протягом 1440 секунд; будь ласка, увійдіть знову " або вона просто виходить із системи? Якщо він виходить із реєстрації session.gc_maxlifetimeу вашому /etc/php.ini, яке значення має це?
0xmtn

так, я бачу це повідомлення: "Жодної активності протягом 1440 секунд; будь ласка, увійдіть ще раз"
неділя

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

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

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 вище), то збір сміття робить НЕ

; відбуваються автоматично. Вам потрібно буде робити власне сміття

; колекція за допомогою скрипту оболонки, запису в крон або якогось іншого методу.

; Наприклад, наступний сценарій буде еквівалентом

; встановлення сесії.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_maxlifetimephp.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. Не забудьте очистити кеш браузера та перезапустити веб-сервер.


Я ледь не забув. Після застосування цих змін очистіть кеш браузера та перезапустіть веб-сервер! Будьмо, друже.
Алекс

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

4

кроки, щоб змінити термін дії файлу cookie

крок 1: Перейдіть до налаштувань Phpmyadmin

крок 2: Загальне

крок 3: Дійсність файлів cookie

крок 4: Оновіть час дії файлу cookie за замовчуванням 1440 секунд своїм новим значенням


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


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

Я знайшов рішення і успішно використовую його десь зараз.

Просто встановіть цей Addon у свій браузер FF.


3
Велике пропозицію, так як весь світ використовує Firefox .. Для цього позначаються як відповідь, ви повинні принаймні запропонували аддони більше 1 браузер - так як більшість нормальних людей використовують пристойний браузер , наприклад 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 \ apps \ phpmyadmin4.6.4 \ бібліотеки \ config.default.php

тут ти повинен змінитися

$ cfg ['LoginCookieRecall'] = вірно;

до

$ cfg ['LoginCookieRecall'] = помилково;

також ви можете змінити час cookie замість того, щоб вимкнути відкликання файлів cookie

$ cfg ['LoginCookieValidity'] = 1440;

до

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

моя є

 $cfg['LoginCookieValidity'] = 199000;

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

також є інший метод, але він скидається, коли колись ми перезапускаємо наш сервер wamp, і ось цей метод також

увійдіть у свій dpbord 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.