Apache構成エラーAH00558:サーバーの完全修飾ドメイン名を確実に判別できませんでした
序章
Apache AH00558: Could not reliably determine the server's fully qualified domain name
Apacheがグローバルで設定されていない場合にメッセージが生成されます ServerName
指令。 このメッセージは主に情報提供を目的としており、AH00558エラーによってApacheの正常な実行が妨げられることはありません。
このチュートリアルでは、このシリーズの冒頭にある一般的なApacheエラーのトラブルシューティング方法チュートリアルで説明されている方法を使用してAH00558メッセージを検出する方法を学習します。 また、設定する方法を学びます ServerName
メッセージを解決するためのディレクティブ。
ApacheサーバーがAH00558メッセージの影響を受けることをすでに確認していて、トラブルシューティング手順をスキップしたい場合は、このチュートリアルの最後にあるグローバルServerNameディレクティブの設定手順でメッセージを解決する方法について説明します。 。
を使用したトラブルシューティング systemctl
トラブルシューティングを行うときの最初のステップ AH00558: Could not reliably determine the server's fully qualified domain name
メッセージは、を使用してApacheのステータスを確認することです systemctl
. からの出力 systemctl
多くの場合、メッセージを解決するために必要なすべての情報が含まれています。
UbuntuおよびDebianから派生したLinuxディストリビューションでは、以下を実行してApacheのステータスを確認します。
- sudo systemctl status apache2.service -l --no-pager
On Rocky Linux, Fedora, and Red Hat-derived systems, use this command to examine Apache’s status:
- sudo systemctl status httpd.service -l --no-pager
The -l
フラグは systemctl
楕円で置き換えるのではなく、行の内容全体を出力します(…
)長い行の場合。 The --no-pager
フラグは、次のようなツールを呼び出さずにログ全体を画面に出力します less
一度に表示されるのはコンテンツの画面のみです。
次のような出力を受け取るはずです。
Output● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Wed 2020-07-29 14:30:03 UTC; 33min ago
Process: 34 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 46 (apache2)
Tasks: 55 (limit: 2344)
CGroup: /system.slice/apache2.service
├─46 /usr/sbin/apache2 -k start
├─47 /usr/sbin/apache2 -k start
└─48 /usr/sbin/apache2 -k start
Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Starting The Apache HTTP Server...
Jul 29 14:30:03 68e2cf19f3f1 apachectl[34]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Started The Apache HTTP Server.
AH00558メッセージを含む強調表示された行は重要な行です。 基本的に、Apacheが有効なものを見つけることができなかったことを通知します ServerName
構成ファイルにディレクティブがあるため、検出した最初のIPアドレスを使用します。 この例では、サーバーのパブリックIPアドレスです。 172.17.02
. AH00558メッセージのトラブルシューティングを行っている場合、検出されたIPアドレスが異なるか、人間が読み取れるDNS名である可能性があります。
もしあなたの systemctl
出力には、任意のIPアドレスまたはホスト名の自動検出値が含まれます。このチュートリアルの最後のセクショングローバルサーバー名ディレクティブの設定にスキップして、問題を解決してください。 そのセクションでは、安全なデフォルトでApacheを構成します ServerName
のIPアドレスを使用した値 localhost
: 127.0.0.1
.
もしあなたの systemctl
出力は、に使用できる値を示していません ServerName
ディレクティブ、このチュートリアルの次のセクションでは、 systemd
を使用してログを記録 journalctl
AH00558メッセージを検索します。
を使用したトラブルシューティング journalctl
調べるには systemd
Apacheのログを使用します journalctl
指図。 呼び出すとき journalctl
、ログエントリが大量にある場合に特定のメッセージを見つけるのに役立つ2つの特定のフラグがあります。
に追加する最初のフラグ journalctl
呼び出しは --since today
国旗。 コマンドの出力は、当日の00:00:00から始まるエントリのみをログに記録するように制限されます。 このオプションを使用すると、エラーをチェックするときに調べる必要のあるログエントリの量を制限するのに役立ちます。
使用する2番目のフラグは同じです --no-pager
で使用したオプション systemctl
、ログ全体を一度に画面に出力します。
UbuntuおよびDebianから派生したシステムでは、次のコマンドを実行します。
- sudo journalctl -u apache2.service --since today --no-pager
On Rocky Linux, Fedora, and Red Hat-derived systems, use this command to inspect the logs:
- sudo journalctl -u httpd.service --since today --no-pager
ApacheサーバーがAH00558メッセージを生成している場合は、 journalctl
次のような行のコマンド出力:
Output-- Logs begin at Wed 2020-07-29 14:30:02 UTC, end at Wed 2020-07-29 14:45:03 UTC. --
. . .
Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Starting The Apache HTTP Server...
Jul 29 14:30:03 68e2cf19f3f1 apachectl[34]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
Jul 29 14:30:03 68e2cf19f3f1 systemd[1]: Started The Apache HTTP Server.
出力の2行目は、AH00558メッセージです。 この行には、サーバーのパブリックIPアドレスが含まれています。これは、Apacheが自動的に検出し、実行時にデフォルトとして設定するアドレスです。 このメッセージをAH00558エラーの確認として使用すると、グローバルServerNameディレクティブの設定に進んで問題を解決できます。
それ以外の場合は、次のセクションで、を使用してAH00558エラーメッセージを診断する方法について説明します。 apachectl
指図。
を使用したトラブルシューティング apachectl
アン AH00558: Could not reliably determine the server's fully qualified domain name
エラーはApacheを使用して検出できます apachectl
効用。 と apachectl
Apacheをリロードまたは再起動する前に、このようなメッセージをキャッチでき、検索する必要がなくなります。 systemctl
と journalctl
エラーを見つけるためのログ。
Apache構成でAH00558メッセージを確認するには、次のコマンドを実行します。
- sudo apachectl configtest
サーバーがAH00558エラーメッセージの影響を受ける場合は、次のような出力が表示されます。
OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
Syntax OK
このチュートリアルの前のセクションと同様に、 systemctl
と journalctl
AH00558メッセージを見つけるには、前の例で強調表示されているAH00558メッセージを含む行が重要です。 もう一度、IPアドレスに注意してください 172.17.0.2
この例では、サーバーによって異なる場合があります。
このチュートリアルの次のセクションでは、設定方法について説明します。 ServerName
AH00558エラーメッセージを解決するためのディレクティブ。
グローバルの設定 ServerName
指令
解決するには AH00558: Could not reliably determine the server's fully qualified domain name
エラーメッセージ、追加する必要があります ServerName
Apache構成へのディレクティブ。 Apacheは ServerName
単一のサーバーを使用して複数のサイトの要求を処理するために、VirtualHostディレクティブを使用して着信HTTP要求をIPアドレスまたはDNSホスト名にマップするディレクティブ。
エラーメッセージは、グローバル ServerName
ディレクティブも設定する必要があります。 そうすることで、Apacheがにマップされない着信リクエストを適切に処理できるようになります。 VirtualHost
追加のエラーを生成することなく。
さまざまなApache構成との互換性を最大にするには、次の値を使用します。 127.0.0.1
あなたのグローバルのために ServerName
指令。 必要に応じて、サーバーの構成に対応する別のIPアドレスまたはDNS名を使用できますが、最も安全に使用できます。 127.0.0.1
.
UbuntuおよびDebianから派生したシステムでは、 /etc/apache2/apache2.conf
を使用してroot権限を持つファイル nano
またはお好みのテキストエディタ:
- sudo nano /etc/apache2/apache2.conf
を含む行を追加します ServerName 127.0.0.1
ファイルの最後まで:
. . .
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
ServerName 127.0.0.1
On Rocky Linux, Fedora, and Red Hat-derived systems, open the /etc/httpd/conf/httpd.conf
を使用してroot権限を持つファイル nano
またはお好みのテキストエディタ:
- sudo nano /etc/httpd/conf/httpd.conf
追加します ServerName 127.0.0.1
ファイルの最後までの行:
. . .
# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
ServerName 127.0.0.1
終了したら、ファイルを保存して閉じます。 使用した場合 nano
、を押してそうします CTRL + X
, Y
、 その後 ENTER
.
追加したら ServerName
構成へのディレクティブ、実行 apachectl
構成が有効であることをテストします。
- sudo apachectl configtest
成功しました apachectl configtest
呼び出すと、次のような出力になります。
OutputSyntax OK
適切なものを使用してApacheの構成をリロードできるようになりました systemctl reload
Linuxディストリビューションのコマンド。
UbuntuおよびDebianから派生したシステムでは、以下を実行します。
- sudo systemctl reload apache2.service
On Rocky Linux, Fedora, and Red Hat-derived systems use this command to reload Apache’s configuration:
- sudo systemctl reload httpd.service
Apacheをリロードすると、AH00558エラーメッセージはログに表示されなくなります。 3つのうちのいずれかを実行すると、メッセージが無音になっていることを確認できます。 systemctl
, journalctl
、 また apachectl
このチュートリアルで示されているコマンド。
結論
このチュートリアルでは、 AH00558: Could not reliably determine the server's fully qualified domain name
エラーメッセージ。 これらのメッセージはApacheの実行を妨げるものではありませんが、グローバルを設定することで解決できます。 ServerName
指令。
を使用してAH00558エラーメッセージを検索する方法を学びました systemctl
, journalctl
、 と apachectl
コマンド。 最後に、さまざまなLinuxディストリビューションでApache構成を編集して、メッセージを無音にする方法を学びました。
Apacheの使用方法について詳しく知りたい場合 ServerName
ディレクティブ、名前ベースの仮想ホストに関するApacheのドキュメントでは、ディレクティブについて詳しく説明しています。