phpMyAdminに外部からログインできない回避法とは?BASIC認証でアクセス制限を実装する方法!
普段私はウェブサーバを使って、プログラムやウェブサイトを公開しています。
統合開発環境ってとっても便利なんですよね。
ウェブサーバ構築時はapache、MySQLなどの機能が盛り込まれているXAMPPを利用しています。
これをインストールするだけで欲しい機能がすべて手に入ります。
さて、このXAMPPではMySQLのデータベースをメンテナンス管理できるページphpMyAdminというものがあります。
ものすごく便利で重宝しますが、外部のユーザのアクセスを許可する時、
パスワード認証が求められないので、アクセスされ放題です。
なので私はphpMyAdminを複数ユーザで利用する時はBASIC認証を実装しています。
さてそのBASIC認証というものを実装する前に、XAMPPインストール初期状態では、
phpMyAdminは外部IPからのアクセスが近似されていますので、一旦許可してから解説していきますね。
外部IPのアクセスを許可する方法
まずXAMPPのフォルダにアクセスし、以下のファイルをエディタで開きます。
1 | C:\xampp\apache\conf\extra\httpd-xampp.conf |
開いたファイルの一番最後の「New XAMPP security concept」の項目を以下に書き換えます。
httpd-xampp.confの記述を変更
各種アクセス権の条件指定(118行目あたり)変更前
1 2 3 4 5 6 7 | # # New XAMPP security concept # <LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))"> Order deny,allow ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var </LocationMatch> |
変更後
1 2 3 4 5 6 7 | # # New XAMPP security concept # <LocationMatch "^/(?i:(?:xampp|security|licenses|webalizer|server-status|server-info))"> Order deny,allow ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var </LocationMatch> |
※ 記述が見当たらない場合は、ファイルに後述して下さい。
もう1箇所確認する項目があります。
phpMyAdminのURLマッピングの記述 (100行目あたり)
変更前
1 2 3 4 5 6 | Alias /phpmyadmin "C:/xampp/phpMyAdmin/" <Directory "C:/xampp/phpMyAdmin"> AllowOverride AuthConfig Require local ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var </Directory> |
変更後
1 2 3 4 5 | Alias /phpmyadmin "C:/xampp/phpMyAdmin/" <Directory "C:/xampp/phpMyAdmin"> AllowOverride AuthConfig Require all granted </Directory> |
※Apacheの環境によっては変更が不要の場合もあります。
書き換えましたら、上書き保存時、XAMPPを再起動します。
再起動が完了すると、外部からのphpMyAdminへのアクセスが可能になります。
BASIC認証用のパスワードファイルをhtpasswdコマンドで生成
まず手順ですが、Cドライブの直下に「.htpasswd」という空ファイルを作成して下さい。
これがないと作業ができないので注意しましょう。
次にコマンドプロンプトを実行します。
以下のコマンドを入力して下さい。
1 2 | cd C:\xampp\apache\bin htpasswd C:\.htpasswd [任意のユーザ名(ログインIDを指定)] |
任意のユーザ名とある部分はBASIC認証でログインする際のログインIDになります。
ここではログインIDを先に決めます。
2行目のコマンドを実行すると、「New password:」と表示されますので、
ログイン時に使用したいパスワードを入力します。
再度「Re-type new password:」と表示されますので、同じパスワードを入力します。
ここまで完了すると処理が実行されBASIC認証用のパスワードファイルが生成されます。
先ほどCドライブの直下に作った「.htpasswd」がパスワードファイルです。
このファイルを以下のフォルダに移動させます。
1 | C:\xampp\apache\conf |
これでパスワードファイルの生成は完了です。
BASIC認証を設定ファイルで実装する方法
次に、以下のファイルをエディタで開き編集します。
1 | C:\xampp\apache\conf\httpd.conf |
開きましたら、ファイルの一番最後に、以下を追記します。
1 2 3 4 5 6 | <Directory "C:\xampp\phpMyAdmin"> AuthType Basic AuthName "Secret Zone" AuthUserFile C:\xampp\apache\conf\.htpasswd Require valid-user </Directory> |
これを追記することで、phpMyAdminにアクセスした際にパスワードを求められるようになります。
最後にXAMPPを起動している場合は、再起動することで設定が反映されます。
ブラウザでphpMyAdminのURLを入力してアクセスすると、上記のようにログイン認証が求められます。
まあ一応MySQLのユーザIDとパスワードをそのままログイン認証に使う手もあったんですが、
ユーザに依存せず、任意のログインIDとパスワードを設定したかったので、
こんな感じになりました。
最新記事 by よっき (全て見る)
- 「圧着」と「圧接」の違い!コネクタを使った効率的な配線作業! - 2019年10月26日
- 夏の暑さ対策は大丈夫?冷却性能抜群のおすすめCPUクーラー!メモリに干渉しない最強の商品を紹介! - 2018年5月1日
- 自作PC弐号機のケースを換装!SilverStone製のミニタワーで冷却性とかっこよさを追求! - 2018年3月11日
スポンサードリンク
こちらの記事もどうぞ!
記事公開日:2015年3月31日
最終更新日:2018年5月6日