「アクセス制限1」で解説している「応用設定2」のやり方で、パスワードファイルを変更する
だけでアクセス制限が掛けられるようになった。ただし、このパスワードファイルを変更する
にはtelnetなどでサーバに接続し、htpasswdコマンドを使って操作しなければ
ならない。
そこで、htpasswdコマンドではなくてCGIプログラムでWeb上からパスワードファイル
を編集する方法を紹介したい。
ネットサーフレスキュー[Web裏技] というサイトにパスワードアクセス制限管理システム(HTPWD)というシステムが紹介されて いる。ここからhtpwd15.lzhをダウンロードする。
解凍すると、次のようにファイルが展開される。
[htpwd15]
+ .htaccess
+ .nsconfig
+ admin.cgi
+ change.cgi
+ index.html
+ master.cgi
+ readme.txt
+ regist.cgi
+ remove.cgi
+ remove.cgi2
+ user.cgi
+ [entry]
+ .htaccess
+ .nsconfig
これらのファイルをホームページに組み込み、任意のディレクトリにパスワード制限を掛ける。
例えばmembers2というディレクトリにパスワード制限を掛けたい場合は次のように
設定する。
設定ファイルの配置
members2ディレクトリを作成し、.htaccessファイルと.nsconfig ファイルをmembers2ディレクトリにコピーする。
プログラム・パスワードファイルの配置
プログラムはCGIなので、CGIが動く任意の場所へ配置する。今までやってきた設定では
cgi-binディレクトリ以外ではCGIが動かないようになっているので、そこへ
コピーする。プログラムファイルはchange.cgi、index.html、master.cgi、regist.cgi、remove.cgi、
remove2.cgiで、パスワードファイルはadmin.cgi、user.cgi。
コピー後、プログラムファイルのパーミッションを755に、パスワードファイルの
パーミッションを666に設定する。
なお、index.htmlのファイル名を別の何か(htpwd.htmlなど)に変更する。
このファイルは何処にあってもいいが、プログラムファイルとは別のディレクトリに
配置した場合は、ソースを修正しなければならない。
設定ファイルの編集
.htaccessファイル、.nsconfigファイルをそれぞれviで開き、 日本語になっているところをそれぞれ修正する。
以上で設定は終わりである。上記の設定により、members2ディレクトリ内のページを
Webで参照しようとすると、ユーザ認証画面が現れる。ただし、パスワードファイルは
cgi-binディレクトリ内のuser.cgiファイルで管理される。
パスワードファイルを編集するには、サーバでhtpasswd user.cgi ユーザ名としても
いいが、Web上からhtpwd.htmlを開くことにより、CGIで一括管理できる。
実際に運用する場合は、管理者しか入れないページを作成し、そこにhtpwd.htmlを配置 するのがいいだろう。