設定ファイルに構文エラーがないか確認する(httpd -t)

Apache で使用する設定ファイル( httpd.conf ファイル)に構文エラーがあった場合、 Apache が起動しなかったり、設定したはずの設定が反映されていない状態で Apache が起動しているかもしれません。ここでは Apache で使用する設定ファイルに構文エラーがないかどうかをチェックする方法について解説します。

(Last modified: )

設定ファイルの構文をチェックする

Apache の設定ファイルに構文エラーがないかどうかをチェックするには次のように行います。

httpd -t

-t オプションを付けて httpd を実行してください。なお、 -t オプションをつけた場合は構文のチェックだけを行って Apache は起動しません。

それでは実際に試してみます。設定ファイルである httpd.conf ファイルに構文エラーが何もない場合は次のように Syntax OK と表示されます。

設定ファイルを指定してApacheを起動する(1)

次に設定ファイルの中で > の記述忘れがあった場合です。

<Directory />
  AllowOverride none
  Require all denied
</Directory  # 最後に > がない

この場合は次のように </Directory> directive missing closing '>' というエラーが表示されます。エラーの理由に加えてエラーが発生している行数が表示されるため、どの部分でどんなエラーが発生しているのかを確認できます。

設定ファイルを指定してApacheを起動する(2)

次に設定ファイルの中で LoadModule ディレクティブを使って読み込もうとしたファイルが存在しなかった場合です。

# mod_alias.so の書き間違い
LoadModule alias_module modules/mod_alias.s0

この場合は次のように Cannot load modules/mod_alias.s0 into server というエラーが表示されます。エラーの理由に加えてエラーが発生している行数が表示されるため、どの部分でどんなエラーが発生しているのかを確認できます。

設定ファイルを指定してApacheを起動する(3)

このように -t オプションをつけて httpd プログラムを実行することで、設定ファイルの構文エラーがないか、あった場合には理由と行数を確認することができます。

-- --

Apache で使用する設定ファイルに構文エラーがないかどうかをチェックする方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。