概要
自分の開発用のサーバをyum -y update
したら対象にhttpdパッケージが入っいて、開発だから問題ないと思ってアップデートしたら、いつもBasic認証がかかるページに認証がかからなくなっていたので対処しました
結構焦りました
環境
- CentOS 5.10 (Final)
- Apache 2.2.3
各種設定内容
以下の設定として話を進めていきます
2.2.3のデフォルトで何もしていなければ以下の構成になっているかと思います
モジュール関連は今回関係ないですが、基本的なことなのでついでに記載しておきます
- DocumentRoot
/var/www/html
- 設定ファイル配置パス
/etc/httpd/sites-available
/etc/httpd/sites-enabled
- モジュール配置パス
/etc/httpd/mods-available
/etc/httpd/mods-enabled
- モジュールパス
/usr/lib64/httpd/modules/mod_rewrite.so
設定方法
.htaccess自体はディレクトリごとに設定を変えたいときに使う機能です
Apacheのルール設定は階層な構造的になっていて
システム全体の設定 -> VirtualHostごとの設定 -> ディレクトリパスごとの設定 -> ディレクトリごとの設定
みたいな感じで必要に応じて細かく設定することができるようになっています
で、その階層的な設定の可否を制御しているのがAllowOverride
ディレクティブというやつで、こいつの設定次第で細かく設定できるかできないか決まってきます
今回の原因としてはこいつが細かく設定できないモードになっていてディレクトリごとに設定できるはずの.htaccessが使えない状態になっていました
修正した箇所は以下の通り
vim /etc/httpd/sites-enabled/000-default
#AllowOverride None
↓
AllowOverride All
None
になっているとどうやら細かい設定できないモード(というかここで設定した項目を上書いて変更することはできないモード)になっていたので.htaccessがうまく動いていませんでした
書き換えたあとはservice httpd restart
とかでApacheを再起動してください
まぁ要するに大丈夫だろと思ってyum updateしたら設定ファイルまで書き換わってしまって大変なことになったということです
0 件のコメント:
コメントを投稿