ubuntuにおけるapache2のAH00558エラーを解決する。

目的

Ubuntuapache2をインストール後、apache2再起動時に出力されるAH00558エラーを解消する。

結論

以下のコマンドを実行する*1

 sudo echo ServerName $HOSTNAME > /etc/apache2/conf-available/fqdn.conf
 sudo a2enconf fqdn
 sudo service apach2 restart

背景

前提

Ubuntuにapache2を入れたところ、動いてはいるが、再起動時に以下のようなエラーが出力されていた。

sudo service apache2 restart
 * Restarting web server apache2                                               
 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

原因

このエラーは、/etc/hosts にlocalhost以外に自分で設定したホスト名が、Apacheの設定ファイルに定義されていないために発生する。 via Apacheのエラー:Could not reliably determine the server’s fully qualified domain name… | Weblogy

Ubuntuでは/etc/hostsのデフォルトは以下のようになっている*2

127.0.0.1       localhost
127.0.1.1       <コンピュータ名>

このため、127.0.1.1のFQDNを解決できずに失敗するらしい。

解決策

apache の設定ファイルに ServerName を追記すれば良い。

ubuntuではCentOShttpd.confとは違い、設定ファイルは分割が可能なので、解決用の設定ファイルを作り、読み込ませる*3

 sudo echo ServerName $HOSTNAME > /etc/apache2/conf-available/fqdn.conf
 sudo a2enconf fqdn
 sudo service apach2 restart

その他の方法

hostsを編集したり、apache2.confを編集するという手もある。

Apacheのエラー:Could not reliably determine the server’s fully qualified domain name… | Weblogy

UbutnuでApache2を起動してみた - hyktの日記

Slowly Days | まったりなプログラマのブログ

また、最初は/etc/apache2/sites-available以下あるサイト用の設定ファイル(デフォルト)をコピーし、ServerNameを記載して有効化すればよいかと思ったが、それではうまくいかなかった。

 #デフォルトのファイルをコピペしてServerNameを変更する
 sudo cp 000-default.conf <fileName>
 sudo vi <fileName>
 #設定を有効化して、設定を再読み込みする。
 sudo a2ensite 
 sudo service apach2 reload
 #でもうまくいかない

おまけ

他に使ったコマンドなど。

/etc/lsb-release #ubuntuのバージョンを調べる
apache2 -v #apache2のバージョンを調べる
a2dissite #サイトの無効化
a2disconf #confの無効化 

あとずっと気になっているのだが、なぜはてなシンタックスハイライトはbashが使えないのだろう。

*1:echoした際に権限がない旨警告される場合は、viなりで同じようにファイルを作成する

*2:本当はIPv6の設定もあるが省略

*3:そのほうが後々なにかと便利かと思うので