この記事はmiriwoお一人様 Advent Calendar 2022の21日目の記事です
概要
- ApacheとPHPが入っているWebサーバーのDockerコンテナを起動しようとしたところApacheのエラーで起動できなかった。体験談をまとめる。
ご注意
- 本記事はあくまで自分の環境でのトラブルシューティングです。さらに、後述するエラーのみののトラブルシューティングです。
エラー内容
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using XXX.XXX.XXX.XXX. Set the 'ServerName' directive globally to suppress this message
エラーまでの経緯
- 開発しようと思って既に用意されていた
$ make up
コマンドを実行してMySQLとWebのコンテナを一回で起動しようとした。
エラー
-
$ docker ps
で確認したところMySQLのコンテナしか起動していない。 - Docker for DesktopでWebコンテナを見てみたら「エラー内容」で紹介したエラーが主力されていた。
解決までの経緯
-
Docker for DesktopからWebコンテナの起動を試みるが、一瞬起動するものの、同様のエラーを出力しコンテナが落ちる。
-
参考文献に記載されている各リンクの内容を試してみた。apacheのconfで既に
ServerName localhost:80
は設定してあったが一旦コメントアウトしたりしたけど解決しない。 -
エラーは同じだがWeb上の知見と自分の事象が乖離している。
-
Dockerの設定と言ったらdocker-compose.yamlのイメージだったのでWebコンテナの設定を見てみる。
-
原因判明、Webサーバー用のポートフォワーディングの値が誤っていた。
-
下記の様に何故かコンテナ内の8099ポートをローカルの80にフォワーディングしていた。。
docker-compose.yamlports: - "8099:80"
-
app.confではlocalhostを80ポートで提供するように設定していたので下記の様に修正した。
docker-compose.yamlports: - "80:80"
-
問題は解消しWebコンテナは起動した。
教訓
- Dockerコンテナが起動しなかったらDocker for Desktopで当該コンテナのログを見よう。
- エラーコードを検索する時、エラーコードすべてで検索するのではなくかいつまんで調べよう。(今回なら「httpd: Could not reliably determine the server's fully qualified domain name」とか
httpd:
をapache2:
にして検索してみるとか)
参考文献