失敗
Synaptic パッケージ・マネージャを使用して、Ubuntu に Apache をインストールしました。 ブラウザから正常にアクセスできることを確認した後、apache2ctl restart コマンドで Apache の再起動を行ったのです。 すると、次の警告メッセージが出力されました。
警告メッセージには、完全修飾ドメイン名 (FQDN : Fully Qualified Domain Name) が認識できないとあります。 ソースコードからインストールした Apache では、このような警告メッセージを目にしたことはありません。 一体、何が原因で、どこを修正すればよいのでしょうか?
環境
このレポートは、以下の環境について記述したものです。
| OS | Ubuntu 9.10 |
| Web サーバ | Apache 2.2.12-1ubuntu2.1 |
原因
Apache では ServerName ディレクティブでホスト名を設定します。 ソースコードからインストールした場合はデフォルト値が設定されていますが、Ubuntu 版の Apache では設定されていません。 そのため、 ホスト名を認識することができず、警告メッセージが表示されます。
解決策
警告メッセージを消すには、Apache の設定ファイルに ServerName ディレクティブを追加し、ホスト名を明記します。
ServerName ディレクティブを記述できる設定ファイルの候補は、以下の通りです。
| 設定ファイル | 説明 |
|---|---|
| /etc/apache2/apache2.conf | Apache 全体に適用される設定。 |
| /etc/apache2/httpd.conf |
Apache 全体に適用される設定。 Ubuntu では空ファイルになっており、通常は使用しません。 |
| /etc/apache2/sites-available/default |
デフォルトのサイト設定ファイル。 全バーチャルホストの 80 番ポートに関する設定を記述します。 |
| /etc/apache2/sites-available/default-ssl |
SSL の サイト設定ファイル。 デフォルトサイトの 443 番ポートに関する設定を記述します。 |
本稿では /etc/apache2/sites-available/default に記述することにします。
(1) ServerName ディレクティブの追加
/etc/apache2/sites-available/default の先頭行に、FQDN とポート番号 (80) を指定して ServerName ディレクティブを追加します。
ServerName www.example.com:80 <VirtualHost *:80> # 省略 </VirtualHost>
なお、ServerName ディレクティブは、<VirtualHost> ディレクティブの外に記述してください。 <VirtualHost> ディレクティブの中に記述しても、警告メッセージは消えません。
(2) Apache の再起動
Apache を再起動して、警告メッセージが表示されなくなっていることを確認します。
補足
■ SSL ポートへの ServerName ディレクティブの追加
/etc/apache2/sites-available/default-ssl の 3 行目に、FQDN とポート番号 (443) を指定して ServerName ディレクティブを追加します。
<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerName www.example.com:443 # 省略 </VirtualHost> </IfModule>
default-ssl に追加する ServerName ディレクティブは、<VirtualHost> ディレクティブの中に記述してください。 default に追加する場合とは、位置が異なりますのでご注意ください。
