こないだphpmyadminをサーバにインストールしてから、そういえばこれベーシック認証かける必要あるよね?と思って頭悩ませつつ設定してました。
ベーシック認証って、よく使うのに、なぜか毎回忘れちゃうんですよね。
.htpasswd用意するの巻
なんかこんな感じの「ID:パスワード(←暗号化)」を書いたファイルを用意。「htpasswd 作成」とかでググると便利なサイトが出てくるのでありがたく利用します。
idtest:/H1NmcAQmFIKo
.htaccess用意するの巻
htpasswdも用意できたことだし、パスワードかけるざんす。
内容は以下のとおり。
AuthUserFile .htpasswdの設置場所
AuthGroupFile /dev/null
AuthName "ID and password irete"
AuthType Basic
require valid-user
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
もっと詳しいやつ
1行目、.htpasswdの設置場所を設定してます。
このとき、サーバーのフルパスで設定しないとダメです。面倒くさいんじゃコレが。
「サーバーのフルパスなんか知らねえ」ってときは、以下の内容のphpファイルを作成して、「.htpasswd」を置いたディレクトリにアップロードしたりしてます。
<?php echo __FILE__ ?>
アップロードしたphpファイルにアクセスすると、
/home/public_html/phpmyadmin/fullpath.php
こんなかんじでフルパスを出してくれるんで、
/home/public_html/phpmyadmin/.htpasswd
なんなり書き換えればokです。もちのろんだけどphpファイルは確認後すぐ削除してください。
3行目、IDとパスワード求める時に出てくるメッセージです。なんかいい感じに英語で入れておけばいいと思います。例はおもくそ日本語だけど。
6〜7行目、.htaccessと.htpasswdファイルへのアクセス拒否の設定。
パーミッションの設定
ファイルのパーミッションは「604」にしておく。
※604:オーナーのみ読み書きできる設定。