Apacheエラー「サーバーの完全修飾ドメイン名を確実に判別できませんでした」

コマンドを使用してApacheサーバーを再起動すると

sudo /etc/init.d/apache2 restart

私は次のエラーが表示されます:

Restarting web server apache2apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName... waiting apache2:Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

サーバーは127.0.0.1の代わりに127.0.1.1を使用していますか? このエラーの原因は何ですか?

13.04歳以上

これは単なる友好的な警告であり、実際には問題ではありません(何かが機能しないという点で)。

あなたがに行く場合:

/etc/apache2/apache2.conf

と挿入:

ServerName localhost   

そして、ターミナルに入力してapacheを再起動します:

sudo systemctl reload apache2

通知は表示されなくなります。

あなたが中に名前を持っている場合 /etc/hostname 代わりにその名前を使用することもできます localhost.


そしてそれは使用します 127.0.1.1 それがあなたの中にあれば /etc/hosts:

127.0.0.1 localhost127.0.1.1 myhostname

好ましい方法

Apacheのトラブルシューティング

このエラーが発生した場合:

apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

次に、コマンドラインで"sudo nano"などのテキストエディタを使用するか、デスクトップで"gksudo gedit"などを使用して新しいファイルを作成します,

sudo nano /etc/apache2/conf.d/fqdn

または

gksu "gedit /etc/apache2/conf.d/fqdn"

次に追加します

ServerName localhost

ファイルに保存します。 これはすべて、次のコマンドを使用して単一のコマンドで行うことができます:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

しかし、Ubuntu14.04では:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf sudo a2enconf fqdn

忘れてはいけない"。conf"(なしでは動作しません).

13.10以降

Apache2.4(デフォルトでは13.10)では、設定ファイルを追加する方法を使用することはできません。 conf.d ディレクトリ。

Apacheは、もはや使用していません conf.d ディレクトリ。 すべての設定ファイルは内部に格納されます /etc/apache2/conf-available ディレクトリとすべての設定ファイルには、次のようなものがあります。 .conf 拡張子。

Apache2.4でこのメッセージを解決するには、conf-availableディレクトリ内に設定ファイルを作成する必要があります。 例えば servername.conf.

sudo vi /etc/apache2/conf-available/servername.conf

そして、この中に私たちはただ一つの行を追加する必要があります

ServerName localhost

前の2つのコマンドを1つにまとめることができます。:

echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf

要件に応じてドメイン名またはその他の名前を使用する場合は、置き換えてください localhost あなたが必要とするものは何でも。 次に、この設定を有効にする必要があります。 このためには、次のコマンドを実行する必要があります:

sudo a2enconf servername

a2enconf Apaches2.4で設定ファイルを有効にするコマンドです。 また、それに注意してください servername 上記のコマンドでは、設定ファイルの名前からです servername.conf. 設定ファイルが次のようになっている場合は、 ngenericserver.conf 次に、次のように書く必要があります sudo a2enconf ngenericserver.

この後、サーバーをリロードし、上記のメッセージはもはやあなたをバグにしません。

sudo service apache2 reload

または

sudo apache2ctl graceful

この後、メッセージが再び表示されず、問題が修正されることがわかります。

Apache2は、apacheの設定ファイルにハードコードされるのではなく、適切に設定されたシステムのホスト名からFQDNを取得することもできます。 ハードコーディングすると、ホスト名が変更された場合にも混乱が発生します。 あなたは実際には何も必要ありません ServerName でのディレクティブ httpd.conf または任意のapache設定ファイル。

以下を入れて /etc/hosts:

# IPv4 and IPv6 localhost aliases127.0.0.1 hostname.domainname.com  hostname  localhost::1       hostname.domainname.com  hostname  localhost

どこで hostname.domainname.com マシンのFQDNです。

で適切に設定されたホスト名と一緒に /etc/hostname/ またはと hostnamectl、これはまた、あなたのマシン上の他のサービスが適切に実行されるのに役立ちます(すなわち、ログインプロンプト This is hostname.domainname.com の代わりに This is hostname.unknown_domain.)

  • ターミナルを開く
  • を開きます。 /etc/apache2/httpd.conf ファイル:

    sudo editor /etc/apache2/httpd.conf # [1]
  • デフォルトでは、空白になります。 次の行を追加するだけです:

    ServerName localhost
  • ファイルを保存して終了します

  • サーバーを再起動します

    sudo service apache2 restart

[1]デフォルトエディタを起動します。 sudo update-alternatives --config editor

Apache2の新しいバージョンでは、次のようなコマンドを実行します:

sudo nano /etc/apache2/apache2.conf

ファイルの次の新しい行末を追加します:

ServerName localhost

その後、apache2を再起動します:

sudo service apache2 restart

終わった

私はそれが新しいファイルを作成する方が少し良いことがわかります /etc/conf.d それはどちらかを変更するには apache2.conf または httpd.conf.

これは、私の設定の変更を配布パッケージから分離したままにする個人的な好みです。 だから、更新はあまり複雑ではありません。

私はファイルを作成します /etc/apache2/conf.d/AAserverName そしてそれはだけ含んでいます:

ServerName myhost.mycomain.tld

他の提案は確かにまた働く。

Ubuntu16.04では:

sudo -iecho 'ServerName localhost' > /etc/apache2/conf-available/server-name.confa2enconf server-name

オン 16.04:

追加 ServerName localhost ファイルに httpd.conf usin g次のコマンド。

sudo vi  /etc/apache2/httpd.conf

次に、この行を含めます Include httpd.conf このファイルの最後に

sudo vi /etc/apache2/apache2.conf

構文エラーを再度チェックする

sudo apache2ctl configtest

あなたは今取得する必要があります

Syntax OK

これで、構成を再読み込みすることで、サーバーを正常に再起動できます

sudo service apache2 reload

または、プロセスを強制終了して再度開始します

sudo service apache2 restart

追加 ServerName localhost

 sudo leafpad /etc/apache2/apache2.conf sudo leafpad /etc/apache2/httpd.conf

それはエラーではありません。. それはちょうど友人のリマインダーです

を指定します。 ServerName localhost 仮想ホストセクションの外にある設定ファイルでこれを行う方法があります。

その他の回答することをお勧修正 /etc/apache2/httpd.conf. このファイルは、apacheがaptからアップグレードされると上書きされます。 上書きしたくないApache設定の場合は、新しいファイルを作成する必要があります。 この設定を変更するための「Debianの方法」は次のとおりです:

# create the configuration file in the "available" sectionecho "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf# enable it by creating a symlink to it from the "enabled" sectionsudo a2enconf servername# restart the serversudo service apache2 restart

これは基本的にStarkの答えと同じですが、スクリプト形式をコピーして貼り付けるのは簡単です。 私はもともと重複としてマークされた質問でこれを投稿していました: https://askubuntu.com/a/432408