
次のコマンドを使用して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
完了しました。