FreeBSD 7.0 で ports からインストールした Apache でエラーが発生する

起動時に、下記のエラーが発生する

# /usr/local/etc/rc.d/apache2 start
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22.
# tail /var/log/httpd-error.log
[alert] (EAI 8)hostname nor servname provided, or not known: mod_unique_id: unable to find IPv4 address of "freebsd.example.com"

mod_unique_id とはどういう機能を果たすモジュールなのか?

上記の説明を読むと、「mod_unique_id」は Apache へのリクエストに一意性を保たせるための機能のようだ。
複数構成のサーバーで Apache が稼動している場合、リクエストの一意性が重複する可能性がある。しかし、一意性が崩壊することを許されないサービスを、ユーザーに提供する場合、このモジュールを利用して、より厳密な一意性を保つようにするためのものということらしい。

このモジュールは非常に制限された条件下で、 それぞれのリクエストに「すべて」のリクエストに対して 一意に決まることが保証されている魔法のトークンを提供します。 この一意な識別子は、適切に設定されたクラスタでは複数の マシンの間でさえも一意になります。それぞれのリクエストに対して環境変数 UNIQUE_ID に識別子が設定されます。

このモジュールを利用する目的は色々あるらしいが、

一意な識別子が便利な理由はいろいろありますが、 このドキュメントの目的からは外れるため、ここでは説明しません。

とのこと。

何が問題なのか?

httpd.conf に記述されている ServerName と FreeBSD のマシンに割り当てている hostname が一致していないのが原因である。
FreeBSD のマシンに割り当てている hostname を確認する。

# hostname
freebsd.example.com
# hostname -s
freebsd

表示された結果は次のリンクで確認をする。
hostname と Apache の ServerName を一致すれば、解決する。

もし、hostname を変更した場合

「/etc/hosts」と「/etc/resolve.conf」の設定も修正をする。

Invalid command 'BrowserMatch' のエラーが発生したら

Apache の起動時に下記のエラーが発生した。

Invalid command 'BrowserMatch', perhaps mis-spelled or defined by a module not included in the server configuration

httpd.conf の設定を修正しているときに間違ったようだ。
原因は、setenvif_module をコメントしていただめだった。

# LoadModule setenvif_module libexec/apache22/mod_setenvif.so

コメントアウトをしたら、元に戻った。