1

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は、サーバーがこのアドレスの要求を決して完了しない方法でリダイレクトしていることを検出しました」と停止します。

私のセットアップに関するいくつかの詳細:

私はこれのためにdebian6でphp5-fpmでnginxを使用しています。apt-getを使用してphpmyadminをインストールし、インストール後に有効なnginx構成を作成しました。次に、rootのユーザー名とパスワードを手動で入力してphpmyadminをテストしましたが、これは正しく機能しました。

これは単なるテストであるため、サーバーに接続する人だけを「自動認証」するのではなく、単にサーバーを機能させたいので、pma.phpスクリプトを可能な限り削除しました。

4

1 に答える 1

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');
         }

    ?>
于 2013-03-23T18:25:10.617 に答える