PHPMyAdmin单点登录身份验证无限重定向循环

PHPMyAdmin单点登录身份验证无限重定向循环,php,mysql,nginx,phpmyadmin,debian,Php,Mysql,Nginx,Phpmyadmin,Debian,我正在尝试使用phpmyadmin为控制面板创建一个单一登录平台。我已经准备好了教程和相关文档。我安装了phpmyadmin,并更改了配置文件和登录脚本,如下所示: config.inc.php: <?php $i = 0; $i++; $cfg['Servers'][$i]['extension'] = 'mysql'; $cfg['Servers'][$i]['auth_type'] = 'signon'; $cfg['Servers'][$i]['SignonSess

我正在尝试使用phpmyadmin为控制面板创建一个单一登录平台。我已经准备好了教程和相关文档。我安装了phpmyadmin,并更改了配置文件和登录脚本,如下所示:

config.inc.php:

<?php
$i = 0;
$i++;
$cfg['Servers'][$i]['extension']     = 'mysql';
$cfg['Servers'][$i]['auth_type']     = 'signon';
$cfg['Servers'][$i]['SignonSession'] = 'TEST';
$cfg['Servers'][$i]['SignonURL']     = 'pma.php';
?>

pma.php:

<?php
session_set_cookie_params(0, '/', '', 0);
session_name('TEST');
session_start();
$_SESSION['PMA_single_signon_user'] = 'root';
$_SESSION['PMA_single_signon_password'] = 'ROOTPASSWORDHERE';
$_SESSION['PMA_single_signon_host'] = 'localhost';
session_write_close();
header('Location: ./index.php?server=1');
?>

不幸的是,在我的浏览器中访问phpmyadmin URL时,它会在pma.php和index.php之间自动循环,但实际上从未登录到phpmyadmin。Firefox最终捕获并停止了此操作“Firefox检测到服务器正在以一种永远无法完成的方式重定向对此地址的请求。”

有关我的设置的一些详细信息:

为此,我在debian 6上使用带有php5 fpm的nginx。我使用apt get安装phpmyadmin,安装之后,我为它创建了一个工作的nginx配置。然后,我通过手动输入根用户名和密码来测试phpmyadmin,这两个密码工作正常


这只是一个测试,因此我不会对连接到服务器的任何人进行“自动身份验证”,我只是想让它正常工作,所以我尽可能多地从pma.php脚本中剥离出来。

要停止重定向,建议将pma.php的代码更改为

   <?php
         session_set_cookie_params(0, '/', '', 0);
         session_name('TEST');
         session_start();
         $_SESSION['PMA_single_signon_user'] = 'root';
         $_SESSION['PMA_single_signon_password'] = 'ROOTPASSWORDHERE';
         $_SESSION['PMA_single_signon_host'] = 'localhost';
         session_write_close();

         if( !isset($_GET[server])){
            header('Location: ./index.php?server=1');
         }

    ?>

要停止重新定向,建议将pma.php的代码更改为

   <?php
         session_set_cookie_params(0, '/', '', 0);
         session_name('TEST');
         session_start();
         $_SESSION['PMA_single_signon_user'] = 'root';
         $_SESSION['PMA_single_signon_password'] = 'ROOTPASSWORDHERE';
         $_SESSION['PMA_single_signon_host'] = 'localhost';
         session_write_close();

         if( !isset($_GET[server])){
            header('Location: ./index.php?server=1');
         }

    ?>


您有没有找到解决方法?我一直在与同样的问题作斗争…我确实这样做了。(参见:和)--在我的例子中,在管理员所在的会话中拥有“7”权限的用户。您需要确保您的phpmyadmin和其他应用程序在会话中使用相同的cookie。好的,谢谢。那一定是不一样了。。两个应用程序使用相同的cookie名称,权限等方面没有任何问题。不确定laravel是否破坏了某些内容。您确定您的配置引用了正确的cookie吗$cfg['Servers'][$i]['SignonSession']='cookie_name';是的。还通过浏览器检查是否存在正确的cookie名称……您是否找到了修复方法?我一直在与同样的问题作斗争…我确实这样做了。(参见:和)--在我的例子中,在管理员所在的会话中拥有“7”权限的用户。您需要确保您的phpmyadmin和其他应用程序在会话中使用相同的cookie。好的,谢谢。那一定是不一样了。。两个应用程序使用相同的cookie名称,权限等方面没有任何问题。不确定laravel是否破坏了某些内容。您确定您的配置引用了正确的cookie吗$cfg['Servers'][$i]['SignonSession']='cookie_name';是的。还通过浏览器检查是否有正确的cookie名称……至少这对我不起作用。你能解释一下为什么这样会有帮助吗?至少对我来说这不管用。你能解释一下为什么会有帮助吗?