PC-UNIXに関する記事など
会員制のページや仲間内だけに公開したいページを作る場合にはユーザー名とパスワードを使った認証付きのページを作る必要があります。
ここでは最も一般的な .htaccess ファイルを用いたユーザー制限を説明します。
.htaccess で認証が出来るようにディレクティブ設定を行います。
ここでは /home/httpd/limit/public_html 以下のディレクトリを認証が必要なディレクティブに設定します。
/etc/httpd/conf/httpd.conf に
<Directory /home/httpd/limit/public_html> Options FollowSymLinks AllowOverride AuthConfig Limit </Directory>
次にパスワード保護したいディレクトリに次のような内容の .htaccess ファイルを作成します。
※ここではユーザー名とパスワードには共に"guest"を登録します。
AuthType Basic AuthUserFile /path/to/passwd AuthName "Access My Limit Page" <Limit GET> require user guest </Limit>
ここではまず Authtype Basic で通常の認証方法を指定しています。
AuthUserFile
暗号化?したパスワードファイル名を指定します。
AuthName
認証の画面のポップアップウィンドウに表示されます。
Limit
ディレクティブでは認証が必要なリクエストの種類を指定する
(GET の他に PUT POST HEAD などがある)
require
認証を許すユーザー名を指定(今回はユーザ名に guest として登録)
.htaccess ファイルが作成できたら今度は認証に使用する passwd を作成します。作成すると言っても自分で書くわけではありません。
htpasswd と呼ばれる passwd ファイルを作成するコマンドを使用します。
$ htpasswd -c /path/to/passwd guest New password: Re-type new password:
ここではユーザ名 guest に対するパスワードを設定しております。
このコマンドを実行すると設定するパスワード(任意)を2回聞かれますので間違えずに入力します。
これで /path/to/passwd が作成されている事を確認して下さい。
※-cの意味は passwd ファイルを初めて作成する場合に使用する。
別のユーザーを追加する場合はこれを付けずに作成すること
※passwd ファイルを作成する場所は www 経由で見ることの出来ない場所に作成すること。
passwd ファイルに書かれているパスワードはプレインテキストをMIMEエンコードした文字列なので元に復号することも可能なため絶対にpublicな場所には置かないようにして下さい。
passwd ファイルのパーミッションは apache が動作している権限にあわせて下さい。
www ユーザで動作している場合は
# chown www:www /path/to/passwd