今日はまたつまらない大ボケで、貴重な時間を費やしてしまった。そのぶん、httpd.conf の書き方に詳しくなった?かもしれないが。
発端は、自分のホームの下の public_html 以下のディレクトリに BASIC 認証をかけようと思ったところ。とりあえず .htaccess の書き方を調べて、ちょちょいと設置した。が、全く無視されてアクセスし放題。こりゃ参った。
その後、/etc/httpd/conf/httpd.conf をいろいろ書き換えては apache を再起動してそのページにアクセスしてみる、を何度も繰り返した。最後には、inotifywait というツールを導入して、.htaccess がアクセスされているか確かめたら、全くアクセスされていなかった。AllowOverride が効いていない。
結論としては、public_html をアクセスする URL を勘違いしていたのが原因。http://サーバ名/〜ユーザ名/うんたら という風に public_html をアクセスする設定がオプションとして httpd.conf に用意されている。が、小生は /var/www/html の下に、public_html へのシンボリックリンクを置いていて、それを使って、http://サーバ名/ユーザ名/うんたら という URL(ユーザ名の前のチルダなし)でアクセスできるようにしていた。
ということで、httpd.conf の public_html のディレクトリへの設定は全く反映されないのが正しい動作だった。/var/www/html の下の path のディレクトリの設定を httpd.conf に追加することでやっと思うような挙動になった。疲れた...
自分が何をデフォルトから変更したのか、きちんと把握、メモっておかないといけない。
ちなみに、ファイルへのアクセスを監視するのは、Windows のツールの方が使いやすい気がする(FileMon.exe や ProcMon.exe)。まぁ、inotify ツールも使えなくはないが。もっと良いツールも探せばあるのかな。