13.04以前

13.04以前

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

sudo /etc/init.d/apache2 restart

次のエラーが発生します:

Restarting web server apache2
apache2: 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 を使用していますか? このエラーの原因は何ですか?

答え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 localhost
127.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

ファイルに追加して保存します。これはすべて、次のコマンドを使用して 1 つのコマンドで実行できます。

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

しかし、Ubuntu 14.04 では:

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

「.conf」を忘れないでください(ないと動作しません)。

答え2

13.10以降

Apache 2.4 (13.10 以降でデフォルトで使用可能) では、conf.dディレクトリに設定ファイルを追加する方法は使用できません。

Apache はディレクトリを使用しなくなりましたconf.d。すべての設定ファイルは/etc/apache2/conf-availableディレクトリ内に保存され、すべての設定ファイルに.conf拡張子が付くようになりました。

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

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

そして、この中に1行追加するだけです

ServerName localhost

前の 2 つのコマンドを 1 つに組み合わせるには、次のようにします。

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

要件に応じてドメイン名やその他の名前を使用する場合は、localhost必要なものに置き換えるだけで問題ありません。次に、この構成を有効にする必要があります。そのためには、次のコマンドを実行する必要があります。

sudo a2enconf servername

a2enconfは、Apache 2.4 で設定ファイルを有効にするコマンドです。また、servername上記のコマンドは設定ファイルの名前から来ていることに注意してくださいservername.conf。設定ファイルの場合はngenericserver.conf、 と記述する必要がありますsudo a2enconf ngenericserver

その後サーバーをリロードすると、上記のメッセージが表示されなくなります。

sudo service apache2 reload

または

sudo apache2ctl graceful

これで、メッセージは再度表示されなくなり、問題は解決されます。

答え3

Apache2 は、Apache 構成ファイルにハードコードされているのではなく、適切に構成されたシステム ホスト名から FQDN を取得することもできます。ハードコードすると、ホスト名が変更された場合に混乱が生じることもあります。実際には、Apache 構成ファイルServerName内にディレクティブは必要ありませんhttpd.conf

以下を入力してください/etc/hosts:

# IPv4 and IPv6 localhost aliases
127.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)。

答え4

apache2 の新しいバージョンでは、次のコマンドを実行するだけです。

sudo nano /etc/apache2/apache2.conf

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

ServerName localhost

次に、apache2 を再起動します。

sudo service apache2 restart

完了しました。

関連情報