phpmyadmin无法设置会话cookie。也许您使用的是HTTP而不是HTTPS

时间:2018-04-13 07:44:05

标签: php phpmyadmin

我完成并安装了PHP,Apache和MySQL。 当我完成安装Phpmyadmin时,打开它有一个错误。

Failed to set session cookie. Maybe you are using HTTP instead of HTTPS.

我不知道为什么。 我该如何解决这个问题?

18 个答案:

答案 0 :(得分:6)

今天在Chrome上遇到了这个问题,以下内容对我有用,所以我想与大家分享。

导航到检查器>应用程序>清除存储>继续清除所有内容。

enter image description here

答案 1 :(得分:3)

你似乎不是第一个体验这一点的人;在你之前还有一个:https://github.com/phpmyadmin/phpmyadmin/issues/14184

我个人遇到麻烦,我必须按下按钮才能再次登录,但它对我有用。打开该bug的人完全无法登录。

所以基本上它是一个开放且已知的bug,希望它能在下一个phpMyAdmin版本中得到修复。

答案 2 :(得分:2)

我过去遇到过这个问题,但是使用本答案中提供的说明成功地解决了这个问题。 (使用phpMyAdmin版本4.8.0.1)

导航至

config.inc.php

在您的服务器文件中并检查以下部分:

/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'username';
$cfg['Servers'][$i]['password'] = 'password';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;

如果尚未执行,注释用户和密码行,并确保将 auth_type 设置为 Cookie

根据我的经验,需要在phpMyAdmin进行此操作,以便在您继续之前使用Cookie身份验证。

接下来,执行以下步骤以解决不使用HTTP的会话cookie:

  1. 输入您的浏览器设置(例如,对于Google Chrome,请转到chrome:// settings /)
  2. 尝试找到设置以清除Cookie,缓存数据,图像和文件,历史记录等。
  3. 成功找到此信息后,请清除浏览器的浏览历史记录,下载历史记录,缓存的图像和文件以及内容设置。
  4. 清除phpMyAdmin登录页面的cookie。 注意: 在Internet Explorer中,查看和删除Cookie有点困难。如果您需要帮助,可以使用互联网文章from Ask Leo关于在IE中查看Cookie。
  5. 我收到了执行上述说明的想法,因为我在this GitHub issue提到私人模式时看到某人。这是 nik6018

    的评论
      

    如#14234中所述,通过HTTP登录如果处于私有模式,但在正常会话中不起作用。   我试图清除域名的cookie但仍然是同样的问题。

    私人模式让我想起了我在遥远的过去所遇到的问题,我记得要清除各种浏览器项目。

    由于我从遥远的过去提醒,我按照与我提出的不同的顺序或方式尝试了上述说明,并且有效。

答案 3 :(得分:2)

我今天遇到了这个问题,以下是我在Chrome上修复该问题的步骤:

enter image description here

1-右键单击页面上的任意位置,然后选择“检查”或单击F12打开开发人员工具。

2-从顶部菜单中,选择“应用程序”。

3-单击左侧菜单上的Cookies。

4-您将在其中找到一些cookie,单击每个cookie,然后单击顶部的“ X”将其删除。删除所有这些内容后,刷新页面。

答案 4 :(得分:1)

我发现了此错误的原因

参考:https://github.com/phpmyadmin/phpmyadmin/issues/15634#issuecomment-571713024

如果您的浏览器具有安全cookie,而您正在浏览的是非安全连接,则该非安全连接将发送一个新的非安全cookie。 并且浏览器将拒绝覆盖Secure之一。 导致无休止的循环。

“无法设置会话cookie。也许您使用的是HTTP而非HTTPS来访问phpMyAdmin。”

我还尝试了“ Privacy Badger”,但无法重现该问题。

答案 5 :(得分:1)

我在phpMyAdmin-4.9.1。上遇到了这个问题。我只是将配置文件从config.sample.inc.php重命名为config.inc.php

答案 6 :(得分:0)

只需清除浏览器中的Cookie和缓存即可。这就是它对我有用的方式。

答案 7 :(得分:0)

我遇到了同样的问题,但就我而言,问题出在我的VPN,所以我将其禁用了。

如果您使用的是VPN,则需要将其禁用 或只是禁用Cookie阻止。

enter image description here

答案 8 :(得分:0)

我遇到了同样的问题,一种快速的解决方法是使用隐身模式

答案 9 :(得分:0)

我刚刚在一个经常使用的站点上使用Firefox 61遇到了这个问题,所以我知道我的配置设置是正确的。实际上,我可以使用私有模式。因此,在非私有模式下,使用Firefox开发人员工具,我清除了所有会话cookie和VOILA。效果很好。

答案 10 :(得分:0)

我的解决方案是禁用“隐私徽章” Firefox扩展(为我的域添加例外)。

完成此操作后,便可以登录。

本文中的其他解决方案(config.ini.php,浏览器缓存,VPN)对我没有任何帮助。似乎该问题主要与环境/浏览器配置有关,这对每个人而言可能都是唯一的。

我认为PHPMyAdmin没问题。

答案 11 :(得分:0)

嗯,这是两件事之一。要么您没有在生产箱上启用TLS / HTTPS(您肯定应该这样做! - 良好的入门资源是Let's Encrypt以及您正在使用的任何主机)或者 您可能正在尝试以生产模式访问开发服务器。在后一种情况下,虽然我自己并不熟悉PHPMyAdmin,但我猜测那里的某个配置文件决定了它应该像生产服务器而不是本地服务器一样,你可以切换到。但绝对不要将您的生产服务器切换为开发服务器,那么您只是为了方便而放弃安全性,这最终会让您感到厌烦。

答案 12 :(得分:0)

在网上搜索了此问题的解决方案后,我发现我的情况是特定的chrome扩展名导致了登录问题。 因此,我建议禁用您的扩展程序。

在我看来,引起问题的Chrome扩展名为:安全洪流扫描器

答案 13 :(得分:0)

当我对其进行修复时,应该使用phpMyAdmin 4.9.2解决该问题,但是如果您仍然遇到问题,请对https://github.com/phpmyadmin/phpmyadmin/issues/15634进行评论

威廉, phpMyAdmin团队

答案 14 :(得分:0)

区域是Chrome扩展程序。如果您不想更改任何内容,请在其他浏览器(如Safari或Mozila)中打开url,即可正常使用。

答案 15 :(得分:0)

我遇到了这个问题,因为我使用Docker Compose在nginx反向代理后面托管了phpmyadmin。在我的docker-compose.yml文件中,我有:

db-admin:
    # https://hub.docker.com/r/phpmyadmin/phpmyadmin/
    image: phpmyadmin/phpmyadmin:latest
    restart: always
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=http://db
      - PMA_PORT=3306
      - PMA_ABSOLUTE_URI=http://localhost/db-admin/  # necessary because the db-admin is hosted behind a reverse proxy.
    ports:
      - 8084:80
    depends_on:
      - db
    networks:
      - shared-network

由于使用了反向代理和PMA_ABSOLUTE_URI,我只能在http://localhost/db-admin上使用此应用程序,而不能在http://localhost:8084上使用。

答案 16 :(得分:0)

奇怪的是,当使用 Docker 并且在容器配置中未正确指定数据库主机名时,可能会导致此错误,例如,当实际数据库主机名与 phpMyAdmin 的默认值不匹配时。

消息中指出 Maybe you are using HTTP instead of HTTPS. 的部分是“红鲱鱼”,因为在这种特定情况下切换到 HTTPS 并不能解决问题。

对于这种特定情况,在 docker-compose.yml 中,必须适当设置 PMA_HOST 环境变量,例如:

services:
    phpmyadmin:
        environment:
          - PMA_HOST=mysql

一个更完整的例子,它在 Laravel Sail(它是一个特定的 Docker 容器堆栈实现)中可以正常工作,但只有在进行此更改后,如下所示:

services:
    phpmyadmin:
        image: phpmyadmin
        restart: always
        ports:
          - 8080:80
        environment:
          - PMA_HOST=mysql
        networks:
          - sail

现在可以在http://localhost:8080成功访问phpMyAdmin(注意没有HTTPS),错误不再出现。

答案 17 :(得分:0)

如果您正在使用名为“tampermonkey”的扩展程序,只需禁用它,重新加载并再次尝试登录。