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
That’s 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.