web-dev-qa-db-ja.com

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

コマンドを使用して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を使用していますか?このエラーの原因は何ですか?

428
Deepu

6#13.04以前

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

を挿入する場合

ServerName localhost   

Apache2.conf/etc/Apache2でApacheを再起動すると、通知が消えます。

/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」を忘れないでください(機能せずに)。

506
Rinzwind

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

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

176
Starx

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

/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を表示) )

28
Andrew Mao
  • ターミナルを開く
  • /etc/Apache2/httpd.confファイルを開きます。

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

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

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

    Sudo service Apache2 restart
    

[1]デフォルトのエディターを起動します。Sudo update-alternatives --config editorを参照してください

26
green

Apache2の新しいバージョンでは、次のようなコマンドに従うだけです。

Sudo nano /etc/Apache2/Apache2.conf

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

ServerName localhost

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

Sudo service Apache2 restart

終わった。

20
empugandring

/etc/conf.dまたはApache2.confのいずれかを変更するために、httpd.confに新しいファイルを作成する方が少し良いと思います。

構成の変更を配布パッケージから分離したままにするのは個人的な好みです。したがって、更新はそれほど複雑ではありません。

ファイル/etc/Apache2/conf.d/AAserverNameを作成しますが、これには以下のみが含まれています。

ServerName myhost.mycomain.tld

他の提案も確かに機能します。

6
areeda

Ubuntu 16.04の場合:

Sudo -i

echo 'ServerName localhost' > /etc/Apache2/conf-available/server-name.conf
a2enconf server-name
2
Eduardo Cuomo

ServerName localhostを追加

 Sudo leafpad /etc/Apache2/Apache2.conf

 Sudo leafpad /etc/Apache2/httpd.conf

それはエラーではありません。それはただの友達リマインダーです

1
Serem

これを行う方法は、仮想ホストセクションの外部の構成ファイルでServerName localhostを指定することです。

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

# create the configuration file in the "available" section
echo "ServerName localhost" | Sudo tee /etc/Apache2/conf-available/servername.conf
# enable it by creating a symlink to it from the "enabled" section
Sudo a2enconf servername
# restart the server
Sudo service Apache2 restart

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

1

オンbuntu 16.04

次のコマンドを使用して、ServerName localhostをファイルhttpd.confに追加します。

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
1
daumie

Ubuntu 11.10では、このメッセージが表示され、ディスクがいっぱいになったためにブートがハングしました。 ログファイルの1つが不正になりました 。おそらく実際にはApacheに問題はなかったのでしょうが、このメッセージはブートがハングする前に与えられた最後の手がかりでした。

この問題を解決するには、リカバリモードで起動し、厄介なログファイルを削除する必要がありました。

0
nobar

次のコマンドを実行します。

apachectl -t -D DUMP_INCLUDES

httpd.conf構成ファイルへのパスを決定するには、そのファイルを編集し、ServerNameオプションの値を指定する行をコメント解除または変更します。

ServerName localhost

Webサーバーの場合、登録済みのDNS名(例:example.com)を使用します。

ホストに登録済みのDNS名がない場合は、ここにIPアドレスを入力します。

0
kenorb

Bashを使用していて、最小限の依存関係が必要な場合(およびDockerを使用している場合は、 エントリポイントスクリプトにワンライナーが必要です 私のように)、これら2つのオプションは機能するはずです。

Localhostが必要な場合:

echo "ServerName localhost" >> /etc/Apache2/Apache2.conf

既存のホスト名が必要な場合:

echo "ServerName $(cat /etc/hostname)" >> /etc/Apache2/Apache2.conf

これは、 bashリダイレクト演算子 を使用して、ファイルの末尾に文字列を追加します。 Echoは自動的に改行を挿入するため、設定はすべて完了です。

0
Andrew Odri

オンbuntu 16.04

次のコマンドを使用して、ServerName localhostをファイルhttpd.confに追加します。

Sudo vi  /etc/Apache2/httpd.conf

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

Sudo vi /etc/Apache2/Apache2.conf

構文エラーをもう一度確認してください

Sudo Apache2ctl configtest

今すぐ取得する必要があります

Syntax OK

設定SudoサービスApache2 restartをリロードすることにより、サーバーを正常に再起動できるようになりました

0
daumie