Apacheのトラブルを解決する10のヒント

文:Scott Lowe(TechRepublic) 翻訳校正:石橋啓一郎
2008-01-24 08:00:00
  • このエントリーをはてなブックマークに追加

3:見るべき場所を知る

 もしApacheかApacheのモジュールで問題を抱えた場合、最初に見るべきところはApacheの詳細エラーログだ。システムやApacheの設定によって、エラーログの場所は違っているかもしれない。このファイルのデフォルトの場所は、Apacheをインストールしたルートディレクトリにあるlogsディレクトリの中の、error_logという名前のファイルだ。もしエラーログを見つけることができなければ、設定ファイルのhttpd.confを開いて、エラーログの場所を定義しているErrorLog命令を調べる。

 Apacheのログレベルは最初は「warn」に設定されており、深刻度が警告以上(critical、emergency、error、alert、warn)の問題のログが取られている。ログレベルを変更するには、httpd.confのLogLevel命令を操作する。

 表AはApacheの文書から取ったもので、利用できる8つの警告レベルについて説明し、各レベルで何が記録されるかという例が示されている。

表A
レベル 説明
Emerg 緊急 - システムが利用できない "Child cannot open lock file. Exiting"(子プロセスがロックファイルを開けないため終了した)
Alert 直ちに対処が必要 "getpwuid: couldn't determine user name from uid"(getpwuid: UID からユーザ名を特定できなかった)
Crit 致命的な状態 "socket: Failed to get a socket, exiting child"(socket: ソケットが得られないため、子プロセスを終了させた)
Error エラー "Premature end of script headers"(スクリプトのヘッダが足りないままで終わった)
Warn 警告 "child process 1234 did not exit, sending another SIGHUP"(子プロセス 1234 が終了しなかった。もう一度 SIGHUP を送る)
Notice 普通だが、重要な情報 "httpd: caught SIGBUS, attempting to dump core in ..."(httpd: SIGBUS シグナルを受け、... へコアダンプをした)
Info 追加情報 "Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)..."(「サーバの負荷が高い(StartServers や Min/MaxSpareServers の値を増やす必要があるかも知れない)」)
Debug デバッグメッセージ "Opening config file ..."(設定ファイルを開いている...)

 もしApacheサーバの問題の原因を特定できなかったら、ログレベルを高くしてより多くの情報を集めるとよい。ログレベルを変更したら、サーバを停止して再起動する必要がある。

 実際には、Apacheには2つのログファイルがある。1つはここで説明したerror_logであり、もう1つがaccess_logだ。error_logは、予想の通りトラブルシューティングのために重要なログだ。しかし、問題を探している場合は、access_logも使った方がいい。このファイルには、クライアントが引き出したすべての情報がHTTPのエラーコードやサクセスコードなどと一緒に記録されている。

 見るべき場所を知ることの一部には、実際にサーバを走らせることも含まれる。httpdコマンドと一緒に、-lパラメタや-Mパラメタを使って、Apacheの設定に何が読み込まれているかを確認するのだ。-lパラメタは、サーバにコンパイルされているモジュールのリストを出力するが、これにはhttpd.confのLoadModule命令を使って動的にロードされたモジュールは含まれない。-Mはより多くの情報を出力し、ロードされた静的モジュールと共有モジュールすべてのリストを出力する。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]