Sep 07, 2005

.htaccessでphpMyAdminのアクセス制限をしよう

Panther tiger

alertlogo

重要!phpMyAdminをただインストールして使えるようにしただけだと、どこの誰だかわからない人にも勝手に使われてしまう可能性があります。だって、誰でもこのphpMyAdminにアクセスできちゃうんですから。なので、このページに勝手にアクセスされないように、パスワードでアクセスを管理する設定をします。.htaccesという方法でやります。

このステップに進む前に


ここで.htaccessファイルでの制限を覚えておくとのちのち同じようなケースにであったとき役に立ちます。グループ専用の掲示板とかね。



必要なもの

  • Mac(Mac OS Xを搭載しているもの。ここは10.3.x(Panther)で進みます)
  • mi
  • ターミナル(Terminal)アプリケーションフォルダ>ユーティリティフォルダの中にあります。
  • Safari(またはShiira, Firefox, Mozilla, Omniweb, iCab, Camino, InternetExploreなど)
  • Stuffit Expander(圧縮解凍ソフト)アプリケーションフォルダ>ユーティリティフォルダの中にあります。
  • Fugu(またはRBrowser, Cyberduckなどでも)
  • MySQL(mysql-standard-4.0.25-apple-darwin7.9.0-powerpc.dmg)
  • EntropyPHP(PHP 4.3.11 for Apache 1.3)Mac OS X10.3/10.4用
  • phpMyAdmin(phpMyAdmin 2.6.4-rc1)
  • やる気
  • オープンソースコミュニティへの感謝
  • セキュリティーへの配慮
  • インターネットを構築してくれた方々への畏敬の念



httpd.confの設定変更

.htaccessという設定ファイルをphpMyAdminをおいてあるフォルダの中に設置すると、ユーザーIDとパスワードなしではアクセスできないように設定できます。
.htaccessという設定ファイルはMac OS X標準の状態(のApache)では使うことができません。そこでまずApacheの設定ファイル"httpd.conf"を編集して.htaccessを使えるように設定します。ここでは/Library/Webserver/Document内で.htaccessによる制御ができるように設定します。
 もし自分のホームフォルダにあるサイトフォルダ(/Users/ユーザー名/Sites)内でも.htaccessを使用したいという場合は、このページの下の方も参考にしてください。

  1. まずシステム環境設定から共有を選んで、"パーソナルWeb共有"をオフにします。


  2. httpd.confがある場所を開きます。Finderのメニューから、フォルダに移動を選びます。





  3. "フォルダへ移動"ウィンドウが出ますので、/etc/httpd/に移動します。





  4. httpd.confが保存されている今まで不可視だったフォルダが開きます。


    いままで見えなかったフォルダです。もう少し詳しく場所をみるとこんな感じ。半透明のフォルダの下。



  5. "httpd.conf"ファイルをデスクトップにコピーします。


    ドラッグアンドドロップするだけでコピーできます。(アクセス権の関係)

  6. httpd.confファイルをもしも何かあったときのために複製してどこかにしまっておきます。

    デスクトップにコピーしたhttpd.confを選んで、Finderのメニューから複製を実行します。

    httpd.conf のコピーという名前のファイルができますので...



    を"httpd.conf050806a"とか、変更した日付なんでもいいですがわかりやすい名前を付けておきます。

    これを忘れないところにバックアップしておきます。

    書類フォルダやhttpconfのバックアップフォルダとかを作ってしまっておきます。トラブルあったときに役立ちます。


  7. miエディットでデスクトップにおいてあるhttpd.confを開きます。





  8. 404行目に移動します。




  9. 404行目を書き換えます。

    AllowOverride None



    から

    AllowOverride All



    に書き換えます。



  10. ファイルを保存します。




  11. 今編集したhttpd.confファイルを/etc/httpd/に書き戻します。もしもう/etc/httpd/フォルダを閉じてしまっていたら、STEP18の手順で"フォルダへ移動"を使って開いてください。


    ドラッグアンドドロップで放り込みます。禁止マークがつきますが、気にせず放り込みます。


  12. 警告ダイアログが出ますので、びっくりしますが、気にせず"認証"を押して進みます。




  13. httpd.confの古いファイルを置き換えてもいいか聞いてきますので"置き換える"を押しましょう。



  14. 名前とパスワード(Macの)を聞かれますので、入力します。管理者パスワードですよ。




  15. コピーが無事行われるはずです。



  16. これでコピー完了です。



  17. httpd.confの情報をみます。所有者とアクセス権を以下のように変更します。まずグループをwheel/読み出しのみに、次にオーナーをシステム/読み書きにします。先にオーナーの方を変えるとグループの方がかえられませんので注意。認証を求められることがありますのでそのときは指示に従います。



  18. システム環境設定から、共有を開いて"パーソナルファイル共有"をオンにします。





.htaccessを設置する

勝手にアクセスをされないよう認証を行うためのファイル「.htaccess」と「.htpasswd」ファイルを設置していきます。

基本的な設置方法は以下の通りになっていますが、あまり難しいことはせずに済ませたいと思うときは、私が作成したへなちょこAppleScriptを利用する方法もあります.(ただし、私はAppleScriptを作る方法になれていないのでうまく動かないかもしれません)

htaccess制限設置AppleScript for 仲間内
  1. ".htaccess"ファイルのもとになる"htaccess"ファイル(.ピリオドがない)をつくります。miエディタを動かしてファイル>「新規」>標準文書を作成します。






  2. 以下の文章をペーストします。ペーストしたとき、必ず改行コードがLF(UNIX)になるようにしておきます。
    AuthUserFile /Library/WebServer/Documents/phpMyAdmin/.htpasswd
    AuthGroupFile /dev/null
    AuthName phpMyAdmin
    AuthType Basic
    <Limit GET POST>
    require valid-user
    </Limit>




    改行コードを忘れずにLF(UNIX)にしておきます。



  3. ファイルを保存します。名前は"htaccess"で、場所はphpMyAdminがあるディレクトリです。





  4. 次にphpMyAdminのページにアクセスするのに必要なIDとパスワードが書いてあるファイル".htpasswd"をつくります。

  5. ターミナルを起動させます。ターミナルをつかって暗号化されたパスワードをつくります。htpasswdというunixコマンドをつかいます。


  6. ターミナルが起動したら、以下の通り入力し、リターンを押します。以下の"hogehoge"というところはこれからphpMyAdminで使いたいユーザー名を、"sukinapassword"のところは、使いたい好きなパスワードを入力します。
    htpasswd -nb hogehoge sukinapassword

    hogehogeは好きなユーザー名に、sukinapasswordは好きなパスワードに変えてください。





  7. 実行すると以下のように表示されます。hogehoge:SHwzHnfWvXSjEのSHwzHnfWvXSjEの部分が暗号化されたパスワードになります。






  8. hogehoge:SHwzHnfWvXSjEを選択してコピーします。








  9. miで".htpasswd"のもとになる"htpasswd"(ピリオドのないファイル)をつくります。さっきと同様にmiエディタを動かしてファイル>「新規」>標準文書を作成していきます。






  10. ターミナルからコピーしたhogehoge:SHwzHnfWvXSjEをペーストします。改行形式をLF(UNIX)にするのを忘れないようにします。








    改行コードを忘れずにLF(UNIX)にしておきます。


  11. ファイルを保存します。名前は"htpasswd"で、場所はphpMyAdminがあるディレクトリです。





  12. "htaccess"を".htaccess"に、"htpasswd"を".htpasswd"に名前を変更する作業をします。この作業はFuguなどのFTPソフトを使わないとうまくいきません。まずFuguを起動します。上に上がる矢印でさっき保存した"htaccess"と"htpasswd"があるディレクトリ、/Libary/Webserver/Documents/phpmyadmin/まで移動します。




    今見えている「ライブラリ」は別物ですから、間違えないように。


  13. 上に上がる矢印を2回押すと押すと/Libraryのあるディレクトリに出ます。
    ここからさらにWebserver/Documents/phpmyadmin/へと移動していきます。








  14. "htaccess"を".htaccess"に、"htpasswd"を".htpasswd"に変更します。キーボードのコントロールキーcontrolを押しながらファイルを選ぶと、メニューが出ますので、そのなかのRenameをクリックします。


    コントロールキーを押しながら、または右クリックをするとメニューが出ますので、Renameを選択。

    htaccessのまえにピリオドを入力します。ピリオドのついたファイルは不可視ファイルになります。

    入力したら必ずリターンで決定します。


    htpasswdも同様にRenameします。


  15. これで.htaccessの設置は完了です。phpMyAdminにアクセスしようとすると、IDとパスワードが求められるようになりました。




動作確認

  1. 正常に動作しているかphpMyAdminにアクセスしてみてください。http://localhost/phpmyadmin/にいくと以下のようなダイアログが開くはずです。




  2. STEP23で決めたIDとパスワードで、ちゃんとログインできるか試してみましょう。




  3. 問題なくphpMyAdminに接続できれば終了です。おつかれさまでした。





  4. うまくいかない場合は、システム環境設定、共有の"パーソナルweb共有"がちゃんとオンになっているか、".htpasswd"や".htaccess"のファイルネームが間違っていないか(sが足りなかったり,tが多かったりしないか、ピリオドは落ちていないか)、設置場所が間違っていないか、ファイルの改行コードがLFになっているか、などを確かめてみてください。



/Users/ユーザー名/Sites内でも.htaccessを使えるようにする

  1. Finderの移動メニューから、「フォルダへ移動...」を実行して、/etc/httpd/users/に移動します。


  2. このフォルダの中には、サーバーにしたMacに登録されているユーザーの名前がついた"ユーザー名.conf"というファイルがあります。


  3. .htaccessを有効にしたいユーザー名のconfファイルを探し、デスクトップにドラッグアンドドロップしてコピーします。(トラブルに備えてもう一つどこかにとっておくとよいです)



  4. このユーザー名.confファイルをmiなどで開きます。開くと以下のような記述があります。
    <Directory "/Users/ユーザー名/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>



  5. このファイルの3行目を以下に変更します。
    AllowOverride AuthConfig


  6. 変更がすんだら保存をして、httpd.confの時と同様の方法で、/etc/httpd/usersに書き戻します。認証を求められたら対応します。


  7. システム環境設定の共有パネルから「パーソナルファイル共有」をオンにします。これで/Users/ユーザー名/Sitesフォルダ内でも.htaccess認証が使えるようになります。


Trackback

No Trackbacks

Track from Your Website

http://earlybirds.ddo.jp/namahage/inegalog/trackback/tb.php?id=11
(言及リンクのないトラックバックは無視されます)

Comments in Forum

12 Comments