143

在我的本地开发 Ubuntu 框中,我使用 MySQL 和 phpmyadmin 来处理数据库。

每当 phpmyadmin 空闲 1440 秒(24 分钟)时,会话就会过期。我失去了我的位置,必须登录并重新开始。

我尝试改变$cfg['LoginCookieValidity'] = 3600 * 9;内部config.inc.php,但它仍然在 1440 秒内超时。

我已重新启动所有内容并清除了浏览器缓存(Firefox 历史记录 -> 清除最近历史记录 -> 缓存 -> 一切)。

我不确定为什么增加的超时不生效。我究竟做错了什么?

4

26 回答 26

204

在浏览器中转到 PHPMyAdmin

设置 > 功能 > 更改登录 cookie 有效性的值 > 保存在此处输入图像描述

注意:您必须在每个会话中执行此操作。

于 2015-05-20T17:40:04.643 回答
78

将此行添加到 /config.inc.php:

$cfg['LoginCookieValidity'] = 36000;

在 /setup/lib/index.lib.php

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

如果您的 phpMyAdmin 站点还没有 .htaccess 文件,请创建一个,并添加以下行以覆盖默认的 PHP 会话超时:

php_value session.gc_maxlifetime 36000

我不建议在您的主 php.ini 文件中更改此值,因为它会允许您所有 PHP 站点的会话超时非常长。

来源:http ://www.sitekickr.com/blog/increase-phpmyadmin-timeout/

于 2013-10-16T16:50:01.993 回答
55

我们可以在以下位置更改 cookie 时间会话功能:

设置->功能->常规->登录cookie有效性

我在这里找到了答案.. 1440 秒内没有活动;请重新登录

编辑:

此解决方案仅适用于当前会话,永久更改:

打开 phpMyAdmin 根目录中的 config.inc.php。

wamp 文件夹:wamp\apps\phpmyadmin{版本}\config.inc.php

ubuntu:/etc/phpmyadmin

添加这一行

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

例子

$cfg['LoginCookieValidity'] = '144000';
于 2014-01-18T20:15:27.970 回答
22

您可以在 phpmyadmin Web 界面更改 cookie 时间会话功能

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 也会失效。因此,我们可能需要在php.ini配置文件中设置 session.gc_maxlifetime(文件位置在 ubuntu 中是 /etc/php5 /apache2/php.ini)。

session.gc_maxlifetime = 3600 * 3


关于 LoginCookieValidity 的 phpMyAdmin 文档

$cfg['LoginCookieValidity']

类型: 整数 [秒数]
默认值: 1440

定义登录 cookie 的有效期。请注意 php 配置选项 session.gc_maxlifetime 可能会限制会话的有效性,如果会话丢失,登录 cookie 也会失效。所以最好将 session.gc_maxlifetime 设置为至少与 $cfg['LoginCookieValidity'] 相同的值。

笔记:

  1. 如果您的服务器崩溃并且无法加载您的 phpmyadmin 页面,请在 /var/log/apache2/error.log 检查您的 apache 日志。如果您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 如上所述更改。
于 2014-08-07T06:14:43.650 回答
17

似乎有用于更改 phpmyadmin 配置的 UI 启动 apache 并单击以下链接

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

于 2013-10-10T21:19:41.010 回答
13

使用phpMyAdmin settings没有任何问题或要求更改 php my.ini 中的配置或定义 .htaccess 文件的步骤:

  1. 转到您的phpMyAdmin安装路径(例如我的 centos7 上的/usr/share/phpMyAdmin/create_tables.sql )并在其子文件夹之一中找到(phpMyAdmin/sql/create_tables.sql在我的 4.4.9 版本中。)并从您的 Web 浏览器在您当前的 phpMyAdmin 站点上执行整个文件内容。这将创建一个名为的数据库,该数据库phpmyadmin可以永久保存所有 phpMyAdmin 选项。
  2. 在 phpMyAdmin config.inc.php(位于我的 centos7 服务器的/etc/phpMyAdmin/$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';上)中找到注释行并取消注释(现在 phpMyAdmin 将使用我们在上一步中生成的自定义数据库)。
  3. phpMyAdmin从 Web 浏览器转到并转到PavnishServer >> Settings >> Features >> "Login Cookie Validity"描述的图片并设置所需的值。现在可以了。

参考Niccolas 答案, PhpMyAdmin配置存储flashMarks 答案

于 2015-09-06T11:59:39.223 回答
9

然后您将收到另一个警告:“您的 PHP 参数 session.gc_maxlifetime 低于 phpMyAdmin 中配置的 cookie 有效性,因此,您的登录将比 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/

这对我有用!:)

于 2013-05-22T07:15:17.780 回答
7

您应该重新启动 apache 或 httpd,而不是 mysqld

sudo service httpd restart

或者

sudo /etc/init.d/apache2 restart
于 2012-12-04T07:26:14.637 回答
7

您只需增加 phpMyAdmin 会话超时,打开根 phpMyAdmin 目录中的 config.inc.php 并添加此行。

从 wamp 文件夹路径wamp\apps\phpmyadmin4.0.4\config.inc.php

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

例子

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

注意: 较短的 cookie 生命周期对于开发服务器而非生产服务器来说都很好。

于 2014-03-11T06:55:52.620 回答
7

1)登录到 phpMyAdmin 2)从主屏幕点击“更多设置”(我的屏幕中间底部) 3)点击屏幕顶部的“功能”选项卡/按钮。4) 在 20 天内将“登录 cookie 有效性”设置为 1728000 5) 应用。

php xampp

于 2015-07-31T09:54:16.487 回答
6

要设置永久 cookie,您需要执行一些步骤

转到->/etc/phpmyadmin/config.inc.php文件

添加此代码

$cfg['LoginCookieValidity'] = <cookie expiration time in seconds > 
于 2015-05-14T10:15:09.417 回答
5

它不工作。PHP 会话将在 1440 秒后过期。

改变PHP.ini这一点:

session.gc_maxlifetime = 3600

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

此外,来自PHP.ini

如果您使用子目录选项来存储会话文件

; (参见上面的 session.save_path),那么垃圾收集不会

; 自动发生。你需要自己做垃圾

; 通过 shell 脚本、cron 条目或其他方法收集。

; 例如,以下脚本相当于

; 将 session.gc_maxlifetime 设置为 1440(1440 秒 = 24 分钟):

; cd /path/to/sessions; 找到-cmin +24 | xargs rm

于 2014-03-31T10:53:40.917 回答
5

从 wampicon/php/php 更改 php.in 文件

session.gc_maxlifetime = 1440

session.gc_maxlifetime = 43200
于 2014-05-01T07:27:10.107 回答
4

如果该参数$cfg['LoginCookieValidity']在文件中没有生效,请尝试在 php.ini 文件中通过在左侧添加分号来config.inc.php禁用该参数,如下所示:session.gc_maxlifetime

; 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 上。不要忘记清除浏览器缓存并重新启动网络服务器。

于 2013-10-27T05:57:45.970 回答
4

更改 cookie 过期时间的步骤

第 1 步:转到 Phpmyadmin 的设置

第 2 步:一般

第三步:登录cookie有效性

第 4 步:使用您的新值更新 1440 秒默认 cookie 过期时间

于 2015-05-08T13:10:54.100 回答
3

如果您有phpmyadmin 配置存储设置,这些设置将从您的 phpmyadmin.pma__userconfig 表中提取,并将覆盖您在 config.inc.php 中的任何内容。在这个表中,可以为每个 MYSQL 用户分配一组不同的 phpmyadmin 设置。

于 2014-01-16T06:43:09.573 回答
3

===使用http登录的方法1===

[php.ini]
session.gc_maxlifetime = 86400

[config.inc.php]

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

===使用cookie登录的方法2===

[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

注意

  1. 每个用户都有独立的设置,并且必须为每个用户重复 [webUI] 过程

  2. 如果“phpMyAdmin配置存储未配置完整,部分扩展功能已停用。[找出原因。]”

链接没有出现在首页,进入设置>功能>警告>缺少phpMyAdmin配置存储表> [刷新]几次将使其出现

于 2018-03-24T04:17:27.837 回答
2

在我在这里尝试了所有建议的方法并且仍然退出后,我转向为 Tampermonkey 编写一个小的 usercsript,因为我已经有了那个扩展。它非常简单,只需每分钟向 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);
})();
于 2016-12-24T20:27:55.993 回答
2

按照以下步骤增加 phpmyadmin 的会话超时:

方法一:

  • 使用您的根凭据登录到 phpMyAdmin
  • 从导航栏顶部选择设置
  • 点击功能
  • 在常规选项卡中搜索登录 cookie 有效性字段
  • 将此字段的值更改为大于 1440 的值,例如 36000 或更高的值。

确保您在登录 cookie 有效性中输入的任何值都以秒为单位

phpmyadmin 增加会话超时

方法二:

找到您的config.inc.php文件

For CentOS, Fedora servers:
/etc/phpMyAdmin/config.inc.php

For Ubuntu, Debian servers:
/etc/phpmyadmin/config.inc.php

搜索LoginCookieValidityconfig.inc.php增加它的值

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

//change to 
$cfg['Servers'] [$i] ['LoginCookieValidity'] = 36000;

保存对 config.inc.php 文件的更改并重新启动服务器。

增加session.gc_maxlifetimephp.ini大于或等于您在 中输入的值config.inc.php

于 2020-09-19T04:52:37.073 回答
0

我已经找到了解决方案并成功使用了一段时间。

只需将此插件安装到您的 FF 浏览器。

于 2014-05-09T14:17:15.203 回答
0

在我之后它对我有用

  • $cfg['LoginCookieValidity']in 更改(phpmyadmin folder)/libraries/config.default.php999999999.

  • 检查了php.iniphpmyadmin 使用的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 有效性......”。在我更改php.ini文件之前登录 phpmyadmin 后显示警告。

检查 phpmyadmin 使用的 php 版本。您应该更改 phpmyadmin 使用的 php 的 ini 文件。我已经安装了 php5 和 php(ie 7)。但我的 phpmyadmin 使用 php5。所以我不得不搜索php5的ini文件。

于 2018-01-05T12:56:06.263 回答
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。

最后,所有的消息都消失了。我的会话根据设置保持活动状态(在这种情况下是全天),并且我的设置会被记住。

我当然希望这对某人有所帮助。处理和解决问题让我很沮丧。

于 2019-02-16T20:59:34.373 回答
0

在这里驱动你的 wamp 安装然后去 wamp 然后应用程序然后你的 phpmyadmin 版本文件夹然后去图书馆然后编辑 config.default.php 文件例如

E:\wamp\apps\phpmyadmin4.6.4\libraries\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 dashbord,然后转到设置,然后单击功能,在一般选项卡中,您将看到登录 cookie 有效性放置任何大于 14400 的值,但这在下次重新启动服务器之前有效。

在此处输入图像描述

于 2019-11-20T22:22:49.913 回答
0

对于 Ubuntu 18.04,我刚刚编辑了文件/usr/share/phpmyadmin/libraries/config.default.php

改变: $cfg['LoginCookieValidity'] = 1440

于 2019-12-11T11:34:08.093 回答
0

如果您在 DOCKER 容器中使用 phpMyAdmin:


  1. 转到您的TERMINAL并列出您的 docker 容器以找出phpmyadmin一个:
$ docker ps

# EXAMPLE OF OUTPUT: 

CONTAINER ID   IMAGE                   COMMAND                  CREATED       STATUS       PORTS                                      NAMES
93dfa1f49775   php:7.4.1-fpm           "docker-php-entrypoi…&quot;   2 weeks ago   Up 2 weeks   9000/tcp                                   docker_localhost_app
36299ca6ce83   nginx:alpine            "/docker-entrypoint.…&quot;   2 weeks ago   Up 2 weeks   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   docker_localhost_nginx
c1d8e6ffd28c   phpmyadmin/phpmyadmin   "/docker-entrypoint.…&quot;   2 weeks ago   Up 2 weeks   0.0.0.0:8080->80/tcp                       docker_localhost_myadmin
d75778f88cc6   mysql:5.6               "docker-entrypoint.s…&quot;   2 weeks ago   Up 2 weeks   0.0.0.0:3306->3306/tcp                     docker_localhost_db

  1. bash在选择的容器中执行:
$ docker exec -it docker_localhost_myadmin bash

root@c1d8e6ffd28c:/var/www/html#

在这种情况下docker_localhost_myadminmy容器的名称。


  1. 安装vim editor以更改具有超时变量的文件。执行:
$ apt update
$ apt upgrade
$ apt install vim

  1. 编辑文件config.default.php
$ vim /var/www/html/libraries/config.default.php

  1. 找出变量并将其更改为$cfg['LoginCookieValidity'](8 小时):144028800

要找出 上的变量vim,请按/并键入LoginCookieValidity

前:

  $cfg['LoginCookieValidity'] = 1440 

后:

  $cfg['LoginCookieValidity'] = 28800; 

注意 1:DO NOT设置0(零),因为它会使您的 phpMyAdmin 立即注销。

注意 2:您可能会在 phpMyAdmin 上看到一条消息,例如:

您的 PHP 参数 session.gc_maxlifetime 低于 phpMyAdmin 中配置的 cookie 有效性,因此,您的登录可能会比 phpMyAdmin 中配置的更早过期。

session.gc_maxlifetime在这种情况下,请将 docker-compose.yml 上的环境变量更改为- session.gc_maxlifetime=28800或更大。


  1. 重启你的容器:
$ /etc/init.d/apache2 reload

  1. 注销并登录您的 phpMyAdmin 以查看结果。
于 2021-04-09T13:36:48.673 回答
0

码头集装箱

PHPMYADMIN NO EXIT(防止 Docker 容器 phpMyAdmin 在 1440 秒内没有交互时自动注销)

  1. 在 CMD 或 Git Bash“容器”项目文件夹中运行此命令(开头有或没有“winpty”) winpty docker-compose exec phpmyadmin bash

  2. 复制并重命名当前(phpmyadmin 容器)目录 (/var/www/html) 中的以下文件 --(syntax: 'cp oldfile newfile'):
    cp config.sample.inc.php config.inc.php

  3. 安装(如果没有安装文本编辑器)VIM:
    apt-get update
    apt-get install vim -y

  4. 用 vim 编辑我们上面复制的文件:
    vim config.inc.php

  5. 在新行中按以下行添加Insert key
    (86400 = 一天,2500000 = 一个月)

$cfg['LoginCookieValidity'] = 86400;
  1. Esc key
  2. :wq然后输入Enter

注意:来自上述用户的另一条指令:--
不要将第一行放在 phpmyadmin/config.inc.php 中,而是将其放在目录 phpmyadmin/conf.d 中的一个新文件中,这样它就不会在升级时被覆盖

于 2021-04-09T18:29:49.543 回答