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

文:Scott Lowe(TechRepublic)
翻訳校正:石橋啓一郎
2008/01/24 08:00

Apacheの良くある問題を解決するための10のヒントをお教えしよう。

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を停止する。
記事の感想やご意見をコメントでお寄せください(CNET_IDログインが必要です)
ログイン パスワードを忘れた方  |  新規登録
  • 新着記事
  • 人気記事
  • 特集
  • ブログ
  • 読者投票
    今、使っているマシンのOSは?

    投票受付期間:2008年6月27日 〜 2008年7月11日
  • » 投票しないで結果だけ見る