» 2007のブログ記事

インターネットで次のような認証画面がホップアップしてきてユーザー名とパスワードを知らないと入れないページがある。
  
    s-htaccess.jpg

これはApacheのベーシック認証機能を使った認証画面で、この機能を使えばユーザー名とパスワードを知っている人しかアクセスできないページが意外と簡単にできる。

この機能は特定の人を対象にした掲示板とか、写真などを置いておいて知り合いだけに公開するなど使い道は色々あると思う。
私は、現在構築中のデーターベースのメンテナンスページを隠すのに利用使用と思っている。

原理は制限をかけたいディレクトリに「.htaccess」というテキストファイルを置き、別の場所にそのユーザー名とパスワードの記した「.htpasswd」と言う名前のテキストファイルを置くだけだ。
ただし、レンタルサーバーで利用するには、WebサーバーにApacheを利用している事と、「.htaccess」の利用を許可している事が必要になる。

1.Apache「httpd.conf」ファイルの変更
Apacheサーバーの「httpd.conf」で設置する該当のディレクトリに「AllowOverride All」を指定する必要がある。
デフォルト設定では「AllowOverride None」と無効になっている。

    <Directory “C:/www/public_html”>
      AllowOverride None
    </Directory>
      ↓変更
    <Directory “C:/www/public_html”>
      AllowOverride All
    </Directory>

2.「.htaccess」ファイルの作成
テキストエディタで次のように記述する。
C:/www/public_htmlに置くとすべてのアクセスが制限されるが、C:/www/public_html/hogeに置くと/hogeがその対象となる。

.htaccess———————————–
AuthType Basic
AuthName “Please enter userID and password”
AuthUserFile /home/www/.htpasswd
require valid-user
<Files ~ “^.(htpasswd|htaccess)$”>
deny from all
</Files>

——————————————–
・「AuthType」は、認証タイプ Basicを指定する。
・「AuthName」は、認証時に表示される認証名を入力する。
  ここは自由に書きかえることも可能だが、
  日本語を使うとは文字化けする可能性あり。
・「AuthUserFile」は、パスワードファイル「.htpasswd」(後で作成)
  へのパスを記入する。パスは、URLや相対パスではなく、
  絶対パスでホームディレクトリから記入する。
  (レンタルサーバーの場合は要確認)
・「require valid-user」は、グループ名など指定するが、
 「.htpasswd」を使用するので、このままでよい。
・ <Files・・・以下の欄は必須ではないが、「.htpasswd」と「.htaccess」  といったファイル名をWeb上から閲覧できなくなるような記述である。
・最後に改行する。

3.「.htaccess」ファイルの保存
このファイルを「.htaccess」の名前で保存する。

Windowsの場合は「.」で始まるファイル名には通常操作では後からは変更できないので、テキストエディタ保存時に「.htaccess」の名称で保存する。

もし拡張子.txt等通常名で保存した場合は「コマンドプロント」から次のように「rename」コマンドで名前を変える事ができる。

———————————————————–
C:\Users\hoge>rename C:\Users\hoge\htaccess.txt .htaccess
———————————————————–

4.「.htaccess」ファイルの配置
このファイルを閲覧制限をかけたいディレクトリの置く。

C:/www/public_html等のホームディレクトリに置くとすべてのアクセスが制限されるが、C:/www/public_html/hogeのように配下ディレクトリのに置くとそのディレクトリ(/hoge)以下ががその対象となる。
レンタルサーバーの場合は /home/user/public_html/hoge などになる。

5.「.htpasswd」ファイルの作成
このファイルの中には「ユーザー名」・「パスワード」が記する。
パスワードは万が一の為に”MD5″で暗号化する。
「.htpasswd」ファイルを作成する為に、Apacheには標準でインストール先binフォルダの中に「htpasswd.exe」がある。
この機能を使うと、暗号化されたパスワードを記載したファイル生成される。
使用方法はコマンドコマンドプロントから以下のようにし、パスワードの設定を要求されるので、2回入力する。
———————————————————–
C:\>c:\apache2\bin\htpasswd -mc c:\apache2\.htpasswd kumao
New password: *********
Re-type new password: *********
Adding password for user kumao
———————————————————–
・「C:\apache2\bin\htpasswd」は、「htpasswd.exe」の場所を指定する。
・オプション「-c」は、「新規ファイル作成」を実行する場合の指示し、
 以後、同じファイルにユーザー名を追加する場合は、「-m」オプションのみとする。
・「C:\.htpasswd」は、「新規ファイル作成場所」と
 「作成ファイル名」の指定です。
・「kumao」は、「認証を行うユーザー名」。

この方法で生成された「.htpasswd」の中身は
.htpasswd————————————
kumao:$apr1$gs4…..$NFAr7x3Wv701LSMkjcMZR1
———————————————
のように、
ユーザー名:暗号化されたパスワード
の形式で記述され、ユーザーを増やせば、順次追加される。

6.「.htpasswd」ファイルの配置
「.htpasswd」ファイルはどこにおいてもいいが、気持ち悪いのでユーザがWeb上からアクセスできないところに置く。
つまり、公開ディレクトリの上(public_htmlなどのディレクトリと同じ位置)に置き、そのパスは上記「.htaccess」のAuthUserFileに指定する。

7.ファイル配置場所のまとめ

  http://hoge.com (架空)
   C
   └ /www … (ここに「.htpasswd」を配置)
     └ /public_html
        └/himitu (認証ディレクトリ) … (ここに「.htaccess」を配置)

8.動作確認テスト
Apacheを再起動して、「.htaccess」を配置したディレクトリにブラウザから
http://hoge.com/himitu/とかhttp://localhost/himitu/のようにアクセスすると認証画面がホップアップしてくるので、ユーザー名とパスワード入力してアクセス可能になれば成功である。(このディレクトリにindex.html等があればそれが表示される。)

posted at 2007/12/04 20:26 | ku


4.phpMyAdmin

phpMyAdminとは、ブラウザからMySQLをGUIにより管理できる便利なツールである。

1.phpMyAdminのダウンロード

以下のMySQL公式サイトより
http://www.phpmyadmin.net/
phpMyAdmin-2.11.2.2-all-languages.zip(2007.11.21現在の最新バージョン)
をダウンロードする。

他にも
-all-languages-utf-8-only.zip

-english.zip
と言ったバージョンもあるので必要に応じて選択する。

2.phpMyAdminのインストール

ダウンロードした
・phpMyAdmin-2.11.2.2-all-languages.zip
を解凍し、Cドライブの直下に移動し、フォルダー名をphpMyAdminに変更する。

  C:\phpMyAdmin\

 解凍時、phpMyAdmin-2.11.2.2」フォルダが2重に自動生成されるので、移動時には注意が必要。

・C:\phpMyAdmin\の中のconfig.sample.inc.phpファイルをその場にコピーし名前をconfig.inc.phpに変更する。

3.phpMyAdminmの環境設定

「config.inc.php」ファイルをエディターで開き、以下の設定を行う。

・17行目
  $cfg[‘blowfish_secret’] = ”;
  変更↓
  $cfg[‘blowfish_secret’] = ‘password’;

上記「password」の部分にはMySQLのrootのパスワードを設定する。

・49行目付近
  追加↓
  $cfg[‘Lang’] = ‘ja-sjis’;

使用言語をシフトJISコード「日本語」に設定する。
なお、UTF-8コードの場合は、’ja-utf-8’に設定に、EUCコードの場合は、’ja-euc’に設定する。
この記述を忘れると文字化けする。

4.Apacheのhttpd.confの設定

httpd.confにエイリアスを設定し、phpMyAdminにhttp://localhost/phpMyAdmin/でアクセス出来るようにする。
「phpMyAdomin」をApacheのドキュメントルートに置けば、この設定は不要。
今回は今後の作業の事を考え、あえてC:\に置いたので、この設定が必要。

・エイリアスの設定
httpd.confの500行目付近、Alias設定がある辺り
  追加↓
  Alias /phpMyAdmin “C:/phpMyAdmin/”
  <Directory “C:/phpMyAdmin/”>
  </Directory>

・Apacheを再起動する。

5.phpMyAdminの起動

・ブラウザより、http://localhost/phpMyAdmin/とアクセスする。

・次のようにユーザ名とパスワードが要求されるので、「root」とrootのパスワードを入力してOKをクリックする。
  s-phpmyadmin_01.jpg

・次のようなphpMyAdminの初期画面が表示される。
   

s-phpmyadmin_02.jpg

3.MySQL5

1.MySQL5のダウンロード

以下のMySQL公式サイトより
http://www.mysql.com/
mysql-5.0.45-win32.zip(2007.11.17現在の最新バージョン)
をダウンロードする。

2.MySQL5のインストールと設定

・ダウンロードしたファイルを解凍する。

・解凍されたフォルダの中の「setup.exe」ファイルをダブルクリックで実行する。

・インストーラが起動したら「Next」ボタンをクリックして次へ進む。

・「Setup Type」のウインドが開いたら、ラジオボタンで「Custom」を選択し「Next」ボタンをクリックして次へ進む。

・インストール先を変更する。
   C:\Program Files\MySQL\MySQL Server 5.0\
   変更↓
   C:\MySQL\

・「Install」ボタンをクリックするとインストールが開始される。
以後2回「Next」ボタンをクリックして進むと、「Wizard completed」のダイアログボックスが開くので、「Configure
the MySQL Server
now」にチェックが入っているのを確認して「Finish」のボタンをクリックすると、インストールは完了し、引き続きMySQLの環境設定ウィザード
が起動する。

・しばらくは既定値のまま「Next」ボタンをクリックし次へ進む。

・「Please slect default character set.」のダイアログボックスが開いたら、ラジオボタンで「Manual
Selected Default Character Set / Collation」を選択し、「Character Set:」で「sjis」を選択し、「Next」ボタンをクリックし次へ進む。

・「Please set the Windows options.」のダイアログボックスで「Include Bin Directory in Windows PATH」にチェックを入れ、「next」ボタンをクリックし次へ進む。

・「Please set the security options.」のダイアログボックスで、「Modify Security
Settings」にチェックを入れ、「 New root password 」欄に root用パスワードを記入し、「Confirm」欄に
rootパスワードをもう1回入力し、「Next」ボタンをクリックし次へ進む。

・「Ready to execute…」のダイアログボックスで、「Execute」ボタンをクリックする。

・環境設定ファイルの更新が始まり、正常に設定が完了すれば、「Processing configuration…」のダイアログボックスが表示されるので、「Finish」ボタンをクリックし環境設定ウィザ−ドを終了する。

3.「my.ini」ファイルの設定

MySQLをインストールした「C:\MySQL」のフォルダの中の「my.ini」ファイルをエディターで開き、以下の設定を行う。

・58行目付近の[mysql]の下の「default-character-set」が、
インストール時に「Character Set:」で「sjis」としたので、
default-character-set=sjis
となっていることを確認する。

・83行目付近[mysqld]の下の「default-character-set」が、
インストール時に「Character Set:」で「sjis」としたので、
default-character-set=sjis
となっていることを確認する。

・[mysql]の項目の下あたりに次の項目を追加する。
  追加↓
  [mysqldump]
  default-character-set=ujis
  skip-character-set-client-handshake

注)「skip-character-set-client-handshake」記述は極めて重要である。これで、文字化けが解消する。

・設定が終了したら、MySQLサービスの再起動するかWindowsを再起動する。

4.MySQLサービスの起動確認

インストールと環境設定が正常に完了していれば、windows起動時にMySQLが自動起動している。
この事は、「スタート」→「設定」→「コントロールパネル」→「管理ツール」→「サービス」で次のように確認できる。
また、Windows起動時に、MySQLが自動起動させてく無い場合は、「スタートアップの種類」を「自動」から「手動」に変更する。
s-mysql_01.jpg
     
5.MySQLコマンドラインクライアントの起動確認

・「スタート」→「プログラム」→「MySQL」→「MySQL Server 5.0」→「MySQL Command Line Client」を選択する。

・MySQLコマンドラインクライアントが起動し、パスワード入力が求められる。環境設定で設定したroot用パスワードを入力し、「Enter」キーを押す。

・次のような画面が表示されれば、正常である。

     s-mysql_02.jpg

・また、インストール時に「Include Bin Directory in Windows
PATH」にチェックを入れた事でPATHが通っているので、コマンドプロンプトからも、「mysql -u root
-p」とし、root用パスワードを入力し、「Enter」キーを押し、次のように表示されることも確認する。
     s-mysql_02.jpgのサムネール画像
6.PHPでMySQLを使用できることの確認

前回のPHP5の項でPHPでMySQLを使用できるように設定したので、PHPの環境設定データをphpinfo()関数で次のようにMySQLに関連
する環境設定データが表示されているか確認する。(apacheをスタートさせて、ブラウザーからlocalhost/test.phpとする。)

s-mysql_04.jpg

7.参考

http://www.mysql.gr.jp/frame/modules/bwiki/index.php?cmd=read&page=FAQ#content_1_40

http://www.y2sunlight.com/ground/?MySQL4.1%2F9.MySQL%A4%CE%BC%C2%B8%B3%2F3.%B4%C1%BB%FA%A4%CE%BB%C8%CD%D1


KUMAOの押入TOP

  • 累積 605402
  • 本日 84
  • 昨日 80
  • 累積PV 2040918
  • 本日のPV 116
  • 昨日のPV 186
  • 現在の閲覧 1

カレンダー

2017年8月
« 8月    
 123456
78910111213
14151617181920
21222324252627
28293031  

カテゴリー

最近のコメント

アーカイブ

年間アーカイブ

Twitter

Get Adobe Flash player