パスワード入りのページを作ります。
rootになってユーザー名とパスワードを決めます。webの閲覧ユーザーが読みに行けない場所(任意)にパスワードファイル .htpasswd を作ります。
# htpasswd -c -b /etc/.htpasswd user password
password for user:
Adding password for user user
httpd.conf に basic認証の設定をおこないます。
viなどで編集します。
最終行に以下を追加します。
<Directory "/usr/local/www/secret/">
# ↑ 秘密にしたい内容が入っているディレクトリ
AuthUserFile /etc/.htpasswd
# ↑ パスワードファイル
AuthGroupFile /dev/null
AuthName "Basic Auth"
# ↑ ブラウザでアクセスしようとするときに出すメッセージ
AuthType Basic
Require valid-user
</Directory>
Apache を再起動すると設定が反映されます。
# apachectl restart
目的のページにブラウザでアクセスするとユーザーとパスワードを求められます。
基本的にはapacheの基本設定ファイルであるhttpd.confに設定するが,小規模な変更であるので,このhttpd.confではなく,この「子分」のファイルである
/usr/local/etc/apache22/Includes/basic.conf
に設定をおこなう.
説明
apache2.2を例にとると,メインの設定ファイルは
/usr/local/etc/apache22/httpd.conf
である.
このファイルの最後の行には
Include etc/apache22/Includes/*.conf
とあるが,これは,
httpd.confがディレクトリ /usr/local/etc/apache22/Includes にある*.confの設定もまとめて有効にしますよ
という意味である.
以下のようにファイル
/usr/local/etc/apache22/Includes/basic.conf
をroot権限で作る.
#ここから--------------------------------------------------------------- <Directory "/usr/local/www/apache22/data/myhomepage/secret"> # アクセス制限をしたいディレクトリ.ここではsecretという名前にする. AuthUserFile /usr/local/etc/apache22/Includes/basic-htpasswd # パスワードファイル名はbasic-htpasswd AuthGroupFile /dev/null AuthName "secret page" # ブラウザでアクセスしようとするときに出すメッセージ AuthType Basic REQUIRE valid-user </Directory> #ここまで---------------------------------------------------------------
コマンドhtpasswdを使ってパスワードファイルを作る.ここではユーザーmasayaに対するパスワードファイルbasic-htpasswdを作る.
# cd /usr/local/etc/apache22/Includes
# htpasswd -c basic-htpasswd masaya
New password:
Re-type password:
Adding password for user masaya
#
オプションの-cは初めてパスワードファイルという合図である.2人目からは-cはつけてはならない(つけるとパスワードファイルが上書きされて新たに作られてしまう).
apacheを再起動する.
# apachectl restart
当該のページにアクセスしようとすると,認証画面が出る.