序章

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のステータスを確認します。

UbuntuとDebianシステム
  1. 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:

Rocky and Red Hat Systems
  1. 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から派生したシステムでは、次のコマンドを実行します。

  1. 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:

  1. 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をリロードまたは再起動する前に、このようなメッセージをキャッチでき、検索する必要がなくなります。 systemctljournalctl エラーを見つけるためのログ。

Apache構成でAH00558メッセージを確認するには、次のコマンドを実行します。

  1. sudo apachectl configtest

サーバーがAH00558エラーメッセージの影響を受ける場合は、次のような出力が表示されます。

Output
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 Syntax OK

このチュートリアルの前のセクションと同様に、 systemctljournalctl 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 またはお好みのテキストエディタ:

  1. sudo nano /etc/apache2/apache2.conf

を含む行を追加します ServerName 127.0.0.1 ファイルの最後まで:

/etc/apache2/apache2.conf
. . .
# 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 またはお好みのテキストエディタ:

  1. sudo nano /etc/httpd/conf/httpd.conf

追加します ServerName 127.0.0.1 ファイルの最後までの行:

/etc/httpd/conf/httpd.conf
. . .
# 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 構成が有効であることをテストします。

  1. sudo apachectl configtest

成功しました apachectl configtest 呼び出すと、次のような出力になります。

Output
Syntax OK

適切なものを使用してApacheの構成をリロードできるようになりました systemctl reload Linuxディストリビューションのコマンド。

UbuntuおよびDebianから派生したシステムでは、以下を実行します。

  1. sudo systemctl reload apache2.service

On Rocky Linux, Fedora, and Red Hat-derived systems use this command to reload Apache’s configuration:

  1. 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のドキュメントでは、ディレクティブについて詳しく説明しています。