いやあ、相変わらず Apache 2.4 系に振り回される日々。
まあ、ちゃんとマニュアル見て最初から設定ファイルを書きなおせばいいんだけど、2.0 や 2.2 系時代の設定ファイルを流用せざるを得ない場面もあって、なかなかこれが・・・(^^;
今回も、CGI を実行されるための、まず、ユーザが .htaccess を置くことを許す設定でハマってしまった。(正確には、そこの設定が問題だとわかるまでにも時間がかかってしまった(^^;)
今まで(2.2 系まで)だと、.htaccess を /var/www の下に置くことを許すのであれば、
とかしてたよね。全ての設定項目を .htaccess で上書きすることを全てのユーザに許すってことだね。
これが、例えばうちのテストサーバで動かしてる 2.4.2 だと、
こう書かないといけない。
全部許すということなら、
ではなく、
と書かないといけない。
いや、もう何年も前から、2.3(開発版)以降の版ではこうなるよって話はあったのだが、未だにうちで面倒みているお客さんのサーバは 2.0、2.2 系が多くて、すっかり忘れていた。
しかも、「AH01630: client denied by server configuration」ってエラーメッセージでググって引っかかる日本語サイトが、ことごとく、「AllowOverride All とか、Order Allow,Deny とかの記述が抜けてるんじゃね?」と、未だ 2.4 系に対応していない記述ばかりだったので、俺のシナプスは全然つながらなかったぜ!
ということで、ちゃんとマニュアルを読まない、俺のような大馬鹿者の助けになるよう、このエントリーを登録します(笑)
Tweet
まあ、ちゃんとマニュアル見て最初から設定ファイルを書きなおせばいいんだけど、2.0 や 2.2 系時代の設定ファイルを流用せざるを得ない場面もあって、なかなかこれが・・・(^^;
今回も、CGI を実行されるための、まず、ユーザが .htaccess を置くことを許す設定でハマってしまった。(正確には、そこの設定が問題だとわかるまでにも時間がかかってしまった(^^;)
今まで(2.2 系まで)だと、.htaccess を /var/www の下に置くことを許すのであれば、
<Directory "/var/www">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
とかしてたよね。全ての設定項目を .htaccess で上書きすることを全てのユーザに許すってことだね。
これが、例えばうちのテストサーバで動かしてる 2.4.2 だと、
<Directory "/var/www">
AllowOverride All
Require all granted
</Directory>
こう書かないといけない。
全部許すということなら、
Order Allow,Deny
Allow from all
ではなく、
Require all granted
と書かないといけない。
いや、もう何年も前から、2.3(開発版)以降の版ではこうなるよって話はあったのだが、未だにうちで面倒みているお客さんのサーバは 2.0、2.2 系が多くて、すっかり忘れていた。
しかも、「AH01630: client denied by server configuration」ってエラーメッセージでググって引っかかる日本語サイトが、ことごとく、「AllowOverride All とか、Order Allow,Deny とかの記述が抜けてるんじゃね?」と、未だ 2.4 系に対応していない記述ばかりだったので、俺のシナプスは全然つながらなかったぜ!
ということで、ちゃんとマニュアルを読まない、俺のような大馬鹿者の助けになるよう、このエントリーを登録します(笑)
ありがとうございます。
同じところで迷ってましたので大変助かりました。
いえいえ。お役に立てたのであれば嬉しいです。ハマったかいがあります(笑)