【问题标题】:phpmyadmin token mismatch for long time idle长时间空闲的 phpmyadmin 令牌不匹配
【发布时间】:2013-08-07 05:49:13
【问题描述】:

我在本地开发环境中安装了phpMyAdmin 4.0.4.1,我将auth_type 设置为config。我还通过此设置提供身份验证要求:

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['password'] = 'somepassword';

但是一段时间后它是空闲的,如果我点击它的任何链接,它会显示一个错误token mismatch,有什么办法可以增加它的TTL?还是让它永远活着?

上图显示错误。

【问题讨论】:

标签: php apache session phpmyadmin session-cookies


【解决方案1】:

我按照以下说明解决了这个烦人的问题:

  1. 打开/etc/php5/apache2/php.ini
  2. 找到;session.save_path = "/tmp",这条线可能也像这样;session.save_path = "/var/lib/php5"
  3. 从该行中删除第一个分号
  4. 通过执行sudo service apache2 restart重启apache

仅供参考:我在 Ubuntu 12.04 下使用 apache2、php5、phpMyAdmin 4.0.5 工作,因此对于不同的系统和服务器,文件路径可能会有所不同。

如果出现任何问题,请检查步骤 2. 中的目录是否可写入服务器。

祝你好运。

【讨论】:

  • 感谢您的提示。我原以为 /tmp 已经是默认值了(我也在 ubuntu 12.04 上),所以我让 session_save_path() 转储原来是 /var/lib/php5 的路径。现在我的问题是,为什么将它移动到 /tmp 而不是 /var/lib/php5 可以帮助我们/使它工作?
  • 我不知道,但权利可能是导致此问题的原因。检查 /tmp 和 /var/lib/php5 的权限。
  • drwxrwxrwt 35 root root 4096 Nov 4 14:03 tmp/ and drwx-wx-wt 2 root root for /var/lib/php5,所以可能是缺少公共读取。 t 而不是 x 是什么意思?
  • 很抱歉,我不知道如何解决您的问题。如果我是你,我会尝试使用不同的权限集 (linux-tipps.blogspot.com/2008/07/directory-rights-in-linux.html)。
  • @Programster Ubuntu 在/etc/cron.d/php5 中有一个清理脚本,它会删除/var/lib/php5 中的文件:更改session.save_path 绕过该清理脚本
【解决方案2】:

在文件libraries/common.inc.php

第 1076 行
删除这部分

 /*
 * There is no point in even attempting to process
 * an ajax request if there is a token mismatch
 */
 if (isset($response) && $response->isAjax() && $token_mismatch) {
    $response->isSuccess(false);
    $response->addJSON(
        'message',
        PMA_Message::error(__('Error: Token mismatch'))
    );
    exit;
}

【讨论】:

  • 最好在 $token_mismatch 行 '$token_mismatch = ($_SESSION[' PMA_token '] != $_REQUEST['token']) 之后立即将其设置为 false (大约第 487 行) ;' (在 IF 语句的后面)
  • 当心,令牌的存在是有原因的。忽略它将打开一系列 CRSF 漏洞:wiki.phpmyadmin.net/pma/…
  • 你在哪里找到libraries/common.inc.php
【解决方案3】:

对我来说,这似乎是由于我的根分区已满造成的,我猜这个错误是由 php 无法写入会话目录触发的。

【讨论】:

    【解决方案4】:

    我不得不在我的浏览器中打开我的 cookie,它对我有用。 (在 OSX 上使用 MAMP)

    【讨论】:

      【解决方案5】:

      按照这里和其他地方的建议都没有成功后,我发现我的 /tmp 已满

      要检查它,只需从命令行运行:df

      它报告文件系统磁盘空间使用情况。

      【讨论】:

      • 运行df命令后,我知道我的文件系统dev/xvda1被使用了100%。
      【解决方案6】:

      在我的情况下,我必须删除一些文件以在此目录 (\tmp) 中腾出一些空间,并且该错误现在已经消失。

      【讨论】:

        【解决方案7】:

        清除浏览器缓存即可。

        【讨论】:

          【解决方案8】:

          要解决此问题,请删除“tmp”文件夹并创建一个名为“tmp”的新文件夹,或者只清除其中的内容。

          【讨论】:

            【解决方案9】:

            尝试使用其他浏览器(例如 IE),如果可行,然后删除可疑的 chrome 扩展。 对我来说 pageXray 是问题所在。

            【讨论】:

              【解决方案10】:

              问题已解决 - 我刚刚清除了过去 7 天的浏览历史记录和数据。它为我解决了这个问题。 试试看。

              【讨论】:

              • 这是评论,不是答案
              【解决方案11】:

              我花了 2-3 天的时间来解决这个问题 .. 堆栈溢出但我没有为我的情况找到任何可行的解决方案.. 但是 最后.. 我解决了这个烦人的问题,我使用 chrome 从 localhost 运行 phpmyadmin 但是在从 firefox 运行之后..问题消失了..

              所以.. 我认为这是 cookie 问题而不是 PMA 所以.. 你应该尝试使用任何其他浏览器..

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2019-11-19
                • 2016-10-07
                • 2013-08-23
                • 1970-01-01
                • 2014-09-02
                • 2013-12-25
                • 2019-05-21
                • 2018-07-15
                相关资源
                最近更新 更多