【问题标题】:phpmyadmin 在 1440 秒后注销
【发布时间】:2012-11-21 18:41:30
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 我首先想到的是,你是不是在修改config.inc.php后重启了webserver?
  • 是的,我运行了这个命令:sudo service mysql restart
  • 如果你已经解决了这个问题,你可以在这里发布解决方案作为答案吗? ;)
  • 对于 Ubuntu 18.04,我刚刚编辑了文件 /usr/share/phpmyadmin/libraries/config.default.php 更改:$cfg['LoginCookieValidity'] = 1440

标签: mysql django phpmyadmin timeout logout


【解决方案1】:

你应该重启 apache 或 httpd,而不是 mysqld

sudo service httpd restart

sudo /etc/init.d/apache2 restart

【讨论】:

  • 现在我已经使用你的命令重新启动了 apache(即 sudo /etc/init.d/apache2 restart),但是 phpmyadmin 在 1440 秒后仍然注销。
  • 您是否看到错误“1440 秒内没有活动;请重新登录”或者它只是注销?如果它注销检查您的/etc/php.ini 中的session.gc_maxlifetime,这个值是多少?
  • 是的,我看到这条消息:“1440 秒内没有活动;请重新登录”
  • 这真的很奇怪。您能否在 /etc/php.ini 中也设置session.gc_maxlifetime=3600*9 并重新启动网络服务器并重试?只是为了加快调试速度,将它们(session.gc_maxlifetime$cfg['LoginCookieValidity'])设置为较小的值,例如 50(秒),然后重新启动网络服务器,清除浏览器缓存并重试。
  • 您能否澄清一下,重新启动服务应该如何更改配置
【解决方案2】:

然后您将收到另一个警告:“您的 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/

这对我有用! :)

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 此链接指向 phpMyAdmin setup。通过 installation 脚本更改 working 应用程序的设置有点冒险,你不觉得吗?
    【解决方案4】:

    将此行添加到/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/

    【讨论】:

    • 如果我可以添加到这个,也改变 config.default.php 行 698 从 $cfg['LoginCookieValidity'] = 1440;到 $cfg['LoginCookieValidity'] = 36000;
    • 而不是将第一行放在phpmyadmin/config.inc.php 中,而是将其放在phpmyadmin/conf.d 目录中的新文件中,这样它就不会在升级时被覆盖
    • 您还可以通过将以下内容添加到您的 config.inc.php 文件(通常在 /etc/phpmyadmin 目录中)来扩展 gc_maxlifetime: ini_set('session.gc_maxlifetime', '36000');这也会将其本地化到 phpmyadmin,并且不会影响其他 PHP 脚本的垃圾收集周期。而且,根据文档,config.inc.php 文件是用来改变行为的——参见docs.phpmyadmin.net/en/latest/config.html。因此,无需担心升级会更改此文件。
    • 我刚试过这个,看起来不需要第 2 步。只是配置文件更改,.htaccess 更改。
    • 对于 Ubuntu 18.04,该文件是 /usr/share/phpmyadmin/libraries/config.default.php
    【解决方案5】:

    如果$cfg['LoginCookieValidity']参数在config.inc.php文件中没有生效, 尝试禁用 php.ini 文件中的 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 上。不要忘记清除浏览器缓存并重新启动网络服务器。

    【讨论】:

    • 我差点忘了。应用这些更改后,清除浏览器缓存并重新启动网络服务器!干杯伙伴。
    • 我认为,如果您在config.inc.php 中有phpMyAdmin 的类似多服务器的配置,则应该设置它实际上是$cfg['Servers'][$i]['LoginCookieValidity'],而不是$cfg['LoginCookieValidity']。不,注释掉 $cfg['Servers'][$i]['LoginCookieValidity'] 不会带来任何结果,因为默认情况下该值已消失。因此,在注释掉或删除此参数后,phpMyAdmin 似乎正在回退到默认的1440 秒。
    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

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

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

      我在这里找到了答案.. No activity within 1440 seconds; please log in again

      编辑:

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

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

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

      ubuntu: /etc/phpmyadmin

      添加这一行

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

      例子

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

      【讨论】:

      • 你必须将 php.ini 中的session.gc_maxlifetime 更改为高于默认值:1440。
      • 这个答案非常不完整,不应该是最高票数。更改设置会给出以下警告:“您的首选项将仅保存当前会话。永久存储它们需要 phpMyAdmin 配置存储。”
      • @fivedogit here 我已经放置了一个更完整的答案,这个答案工作正常。
      • 注意不能设置大于9223372036854775806的值,否则会导致整数溢出。
      【解决方案8】:

      你只是增加了phpMyAdmin Session Timeout,打开phpMyAdmin根目录下的config.inc.php并添加这一行。

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

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

      示例

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

      注意: 较短的 cookie 生命周期对开发服务器来说非常好,而不是对生产服务器。

      【讨论】:

        【解决方案9】:

        它不工作。 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

        【讨论】:

          【解决方案10】:

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

          session.gc_maxlifetime = 1440
          

          session.gc_maxlifetime = 43200
          

          【讨论】:

            【解决方案11】:

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

            只需将此Addon 安装到您的 FF 浏览器即可。

            【讨论】:

            • 很好的建议,因为全世界都在使用 firefox.. 要将此标记为答案,您至少应该为超过 1 个浏览器提供建议的插件 - 因为大多数普通人使用像 google 这样的不错的浏览器铬..
            • 使用插件解决这样一个具体而微不足道的问题似乎让我不知所措。
            • 这没有回答问题。这不应该是公认的答案。你在问:“我不确定为什么增加的超时没有生效。我做错了什么?”
            • 这是完全不相关的答案。用户需要更改“选择的答案”还是我们让版主来调查?
            【解决方案12】:

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

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

            如果要更改配置文件中的'login cookie有效性',则打开phpmMyAdmin配置文件,在PHPMyAdmin的根目录config.inc.php。(根目录通常是/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
            


            phpMyAdmin Documentation on LoginCookieValidity

            $cfg['LoginCookieValidity']

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

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

            注意:

            1. 如果您的服务器崩溃并且无法加载您的 phpmyadmin 页面,请检查 您的 apache 日志位于 /var/log/apache2/error.log。如果您在第 135 行获得了PHP Fatal error: Call to a member function get() on a non-object in /path/to/phpmyadmin/libraries/Header.class.php,请执行 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 如上所述。

            【讨论】:

            • 你为什么还要假设 Apache 参与其中?
            【解决方案13】:

            更改 cookie 过期时间的步骤

            第一步:进入 Phpmyadmin 的设置

            第 2 步:常规

            第 3 步:登录 cookie 有效性

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

            【讨论】:

            • 它仅适用于特定会话,之后它将再次设置为 1440 秒
            【解决方案14】:

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

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

            添加此代码

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

            【讨论】:

              【解决方案15】:

              在浏览器中转到 PHPMyAdmin

              设置>功能>更改登录cookie有效性的值>保存

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

              【讨论】:

              • 这是解决这个问题最快最简单的方法。应该是答案!!!
              • 这不是永久的解决方案。我试过这样做,但一两天后它再次重置为 1440 秒。
              • 这仅适用于当前会话。它甚至在设置中这样说。
              • 不要忘记更新 php.ini 设置 session.gc_maxlifetime = SAME_OR_BIGGER_VALUE_AS_PHPMYADMIN
              • 仅供参考: 不是最佳选择。它只保存到当前会话
              【解决方案16】:

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

              php xampp

              【讨论】:

                【解决方案17】:

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

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

                参考文献Niccolas Answer,PhpMyAdmin Configuration Storage,flashMarks Answer

                【讨论】:

                • 这在 phpMyAdmin 4.8.3 上不起作用。再次让简单的复杂。我记得在此更新之前(我使用的是 4.4 左右),通过服务器 >> 设置 >> 功能一切正常,如此处所述。不再。 config.inc.php 不附带该行
                【解决方案18】:

                在我在这里尝试了所有建议的方法并且仍然退出后,我转向为 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);
                })();
                

                【讨论】:

                  【解决方案19】:

                  在我之后它对我有用

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

                  • 检查了php5 -i | grep php.ini phpmyadmin 使用的php.ini

                  • 转到我从 grep 命令输出中获得路径的php.ini 文件,并将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(即 7)。但我的 phpmyadmin 使用 php5。所以我只好搜索php5的ini文件。

                  【讨论】:

                    【解决方案20】:

                    ===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配置存储表>[刷新]几次就会出现

                    【讨论】:

                    • 请正确格式化这个sn-p。否则它几乎是不可读的。-即使内容看起来很有希望。
                    【解决方案21】:

                    我知道这是一篇旧帖子,但我尝试了我阅读的所有解决方案,包括此页面上的解决方案,但都无济于事,然后我很幸运,所以我将其发布在这里。

                    我正在运行 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。

                    我选择了服务器:本地主机 -> 设置 -> 功能并将“登录 cookie 有效性”的值更改为 86400(24 小时)。请注意,您指定的任何非默认值都会导致此选项的背景颜色变为黄色,因此请不要被它吓到。该值应小于或等于您在 config.inc.php 中使用的值。

                    我保存了设置,退出并重新启动了 phpMyAdmin。

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

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

                    【讨论】:

                      【解决方案22】:

                      在此处驱动您的 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 仪表板 然后转到设置,然后单击功能,在一般选项卡中,您将看到登录 cookie 有效性放置大于 14400 的任何内容 但这在下次重新启动服务器之前有效。

                      【讨论】:

                        【解决方案23】:

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

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

                        【讨论】:

                          【解决方案24】:

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

                          方法一:

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

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

                          方法二:

                          找到您的 config.inc.php 文件

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

                          config.inc.php中搜索LoginCookieValidity并增加其值

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

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

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

                          【讨论】:

                          • 方法二是他用的,说没用。
                          • @JonathanJ.Pecany 您是否重新启动了服务器并在此之后进行了检查?您还需要刷新 phpmyadmin 会话。
                          • 我已经重启了我的服务器。这些步骤都是我不久前完成的。
                          【解决方案25】:

                          如果您在 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…"   2 weeks ago   Up 2 weeks   9000/tcp                                   docker_localhost_app
                          36299ca6ce83   nginx:alpine            "/docker-entrypoint.…"   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.…"   2 weeks ago   Up 2 weeks   0.0.0.0:8080->80/tcp                       docker_localhost_myadmin
                          d75778f88cc6   mysql:5.6               "docker-entrypoint.s…"   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'] 并将其从1440 更改为28800(8 小时):

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

                          之前:

                            $cfg['LoginCookieValidity'] = 1440 
                          

                          之后:

                            $cfg['LoginCookieValidity'] = 28800; 
                          

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

                          注意 2:您可能会在 phpMyAdmin 上看到如下消息:

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

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


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

                          1. 注销并登录您的 phpMyAdmin 以查看结果。

                          【讨论】:

                            【解决方案26】:

                            DOCKER 容器

                            PHPMYADMIN NO EXIT(防止 Docker 容器 phpMyAdmin 1440 秒无交互自动注销)

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

                            2. 复制并重命名当前(phpmyadmin容器)目录(/var/www/html)中的以下文件 --(语法:'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 中的一个新文件中,这样它就不会在升级时被覆盖

                            【讨论】:

                              猜你喜欢
                              • 2013-05-28
                              • 2019-05-14
                              • 1970-01-01
                              • 2015-06-03
                              • 2012-10-30
                              • 2012-07-01
                              • 2016-03-24
                              • 2014-06-19
                              相关资源
                              最近更新 更多