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

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

9:configtestを使う

 httpd.confにいくつかの修正を行ったら、Apacheが正しく動かなくなってしまったが、元のファイルのバックアップを持って折らずどこが悪いのかがわからない、ということがあるだろう。

 実は、Apacheを作り出したすばらしい人たちが、httpd.confファイルをスキャンして、明らかなエラーがないかどうかを確認する方法を提供してくれている。このエラーチェックツールは、apachectrlプログラムの一部として提供されている。これを使うには、コマンド行からapachectl -configtestと入力すればよい。apachectlプログラムは、Apacheをインストールした場所のbinディレクトリにある。

 もしエラーが見つからなければ、このユーティリティは次のような出力を返す。

[root@localhost bin]# ./apachectl configtest
Syntax OK

 このツールがどのように動作するかを示すために、わざといくつかエラーを入れたhttpd.confファイルを作ってみた。

[root@localhost bin]# ./apachectl configtest
Syntax error on line 22 of /usr/local/apache/conf/httpd.conf:
Invalid command 'sserversignature', perhaps misspelled or defined by a module not included in the server configuration

 この場合、私は命令のスペルを間違っており、「SServerSignature」ではなく「ServerSignature」となっていなくてはならない。エラーを修正した後でまたツールを実行すると、さらにエラーが発見される場合がある。これを示すために、私はもう1つのエラーをhttpd.confファイルに入れておいた。

[root@localhost bin]# ./apachectl configtest
Syntax error on line 108 of /usr/local/apache/conf/httpd.conf:
DocumentRoot must be a directory

 この場合、DocumentRoot命令で指定したディレクトリ名にもスペルミスがあり、ディレクトリが存在しないため、Apacheがコンテンツを提供できない状態にあった。

 apachectlプログラムには多くのオプションがある。おそらく誰でも「start」と「stop」は使ったことがあるだろうが、その他にもやりたいことによっては便利に使える場合がある多くのオプションがある。apachectlのオプションの例には、次のようなものがある。

  • configtest:httpd.confのエラーをチェックする。
  • fullstatus:(mod_statusが必要)モジュールのhttpd.confの設定で指定されたURLで設定に関するレポートを提供する。
  • graceful:現在のコネクションを維持したままApacheを再起動する。
  • restart:Apacheを再起動し、すべてのコネクションを切る。
  • start:Apacheサーバーを起動する。
  • status:(mod_statusが必要)現在の要求に関する詳細情報を省く他は、fullstatusと同じ。
  • stop:Apacheを停止する。
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]