趣味でapacheのhttpd.confのチューニングをしていたら、Could not open log file ‘****(ファイルパス)’ (No such file or directory)が大量に発生した。
でも、webページは表示できるため、サービスには影響がないのだが、アクセスログにaccess_logにログがでない。
もし、お客様用に構築していた場合、サービスは正常に表示されていて気づきにくい。
そのため、月次の定例会など、アクセスログの解析をするときに気づくケースとなるため、結構危険。
よって、しっかりと原因究明しようと決心。
ディレクトリのパーミッション権限は適切に設定しているので、おかし〜な〜と思いつつ、3時間程度、苦戦した結果、原因が判明。
「Redirect」のリダイレクト先のURLは絶対パス且つ、プロトコルを記載する!!
私はhttpd.confの「Redirect」を以下のように記載していた。
(誤)
Redirect /blog/ /wp/
(http://hogehoge.com/blog/->http://hogehoge.com/wp/をリダイレクトさせるのが目的)
これは誤りで正しくはこちら
(正)
Redirect /blog/ http://hogehoge.com/wp/
apache.orgのサイト確認済。
これで、エラーログがでなくなった。
でも、誤った記述をしていたとき、
apachectl configtestコマンドとかでも、OKと結果がかえっていた。
単純に自分が初歩的なミスをしていただけだが、
もっとわかりやすいエラーログをだしてほしいものです。
apacheもっと勉強しよ。
Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集 Ken Coar Rich Bowen 笹井 崇司 オライリージャパン 2008-09-26 |
サーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus) 鶴長 鎮一 技術評論社 2012-03-23 |
Leave a Reply