phpmyadminログイン時の勝手なhttp化やリダイレクトを解決!

MySQL

phpmyadminログイン時の勝手なhttp化やリダイレクトを解決する方法

このページは以下のようなエラーが出た時の解決方法を書いてあります。

①phpmyadminをいつも通りインストールしただけなのに、ログイン実行ボタンをおしたあと、勝手にhttp転送されてブラウザから警告をだされてしまう。

②もしくは/public_html/だとか内部サーバーのパスが付加されてリダイレクトされてしまったりと、いろいろなパターンがあると思います。

このような様々な症状をまとめて直す方法を紹介します。


例)

普通にログイン画面からログインしただけなのに・・・

なんでやねん!

https://*****:80/に転送されてしまう!!!!!!!

これが意外と検索してもでてきません。
ポート番号の話はMySQLのポート番号の話ばっかりだったり。

ということでちょっと調べてみました。

原因

ポート番号が変わる原因としてはサーバー本体が(SSL/TLS)443対応していない可能性などがあります。例えばロードバランサに暗号化処理を任せていてwebサーバー自体はhttpしか実装していないなどがあります。

原因となる箇所

libraries/Config.class.php

            if (! empty($url['port'])
                && (($url['scheme'] == 'http' && $url['port'] != 80)
                || ($url['scheme'] == 'https' && $url['port'] != 443))
            ) {
                $pma_absolute_uri .= ':' . $url['port'];
            }


なるほどどうやら$url[‘port’]で指定。

さらに

libraries/Config.class.php

                // If we didn't set port yet...
                if (empty($url['port']) && PMA_getenv('SERVER_PORT')) {
                    $url['port'] = PMA_getenv('SERVER_PORT');
                }

なるほどなるほど。
鍵となるのはSERVER_PORT変数っぽいですね!

解決方法

結局これだけです。

config.inc.phpの末尾に以下2行を足す

$_SERVER['HTTPS'] = "on";
$_SERVER['SERVER_PORT'] = 443;

またURLに変なパスが付加されてしまう場合はひとまず以下で直接指定しちゃってください!
サーバーのいろんな都合が絡み合っていてきっと解決が難しいと思うので。

$cfg['PmaAbsoluteUri'] = 'https://***********/phpmyadmin/';

以上です!

読んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました