Apache2設定

useridirとDigest認証を使ってみようと思いました。apache2.confをあまり触らず、site-enable以下のサイト設定をいじるのがどうも良い雰囲気なのでそうすることにしました。

$ sudo cp /etc/apache2/site-available/default /etc/apache2/site-available/test
$ sudo a2dissite default
$ sudo a2ensite test

デフォルトの設定ファイルをtestという名前でコピーして、defaultファイルを起動しないようにして、testファイルを起動するように設定。

$ sudo a2enmod userdir

これでuserdir.loadとuserdir.confがmods-availableからmods-enableにシンボリックリンクされます。userdir.confの設定を変えないままだと、ホームディレクトリの下のpublic_html以下を使用できるようになります。

$ sudo a2enmod auth_digest
$ sudo htdigest -c /etc/apache2/.digestpass "secret" username
$ sudo htdigest /etc/apache2/.digestpass "secret" username2

auth_digestモジュールをリンク後、ダイジェスト認証用のパスワードファイルを作成。ここの"secret"というのはrealmと呼ばれるもので、とりあえずは後に設定するAuthNameと合わせる必要があります。

$ sudo vi /etc/apache2/.group
GroupName: username username2

グループファイルを作成し、登録しやすくする

$ sudo vi /etc/apache2/site-available/test

AuthType Digest
AuthName "secret"
AuthUserFile /etc/apache2/.digestpass
AuthGroupFile /etc/apache2/.group
Require group GroupName
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On

以前はAuthUserFileの部分は、AuthDigestFileと書く必要があったそうですが、現在はAuthUserFileで動く模様です。最後のBrowserMatchの部分はIE7より前だとURLによってはうまくDigest認証ができなかったIEのバグを回避するためのものです。