httpd:ServerNameに127.0.0.1を使用して、サーバーの完全修飾ドメイン名を確実に特定できませんでした


172

CentOS 5.0でApacheサーバーを再起動しようとすると、次のメッセージが表示されました。

httpd:ServerNameに127.0.0.1を使用して、サーバーの完全修飾ドメイン名を確実に特定できませんでした

これが/etc/hostsファイルです:

127.0.0.1    server4-245    server4-245.com    localhost.localdomain localhost
::1        localhost6.localdomain6 localhost6

これが/etc/sysconfig/networkファイルです:

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=server4-245

これはApache httpd.confファイルにもあります。

ServerName localhost

ただし、Apacheを再起動すると、最初のエラーメッセージが表示されます。


1
正しく編集したことを確認してくださいhttpd.conf。通常ServerName xyは問題ありません。
KingCrunch

回答:


95

ホストファイルに有効なFQDNが含まれていないか、FQDNが含まれていませんlocalhost。FQDNには、ホスト名の部分とドメイン名の部分を含める必要があります。たとえば、次は有効なFQDNです。

host.server4-245.com

FQDNを選択し、/etc/hosts使用しているIPv4アドレスとIPv6アドレスの両方のファイルに両方を含め(この場合、localhostまたは127.0.0.1)、ServerNamehttpd構成を一致するように変更します。

/ etc / hosts:

127.0.0.1    localhost.localdomain localhost host.server4-245.com
::1          localhost.localdomain localhost host.server4-245.com

httpd.conf:

ServerName host.server4-245.com

6
/ etc / sysconfig / networkファイルのHOSTNAMEエントリを、選択した名前と一致するように変更することにも注意してください。
Paul Stengel

2
うーん。私は持っています: 127.0.0.1 localhost gondor gondor.localdomain 192.168.0.3 gondor.localdomain しかし、Linuxはgondor.localdomainもFQDNであるとは考えていません。それの問題は何ですか?TLDが必要ですか?
アダム

こんにちは私は上記のすべてを試しましたが、それでも同じエラーが発生します。ここに何が欠けているのかよくわかりません。私のFQDNは、あなたの答えと同じ方法で設定されたak.local.comですが、私はまだ同じ問題を抱えています。私はOSX 10.10で実行しています
AKFourSeven 2015年

1
127.0.0.1 myserver myserver.mydom.com ... etc <<が機能しない127.0.0.1 myserver.mydom.com myserver ... etc <<が機能する
Martin

208

あなたが持っていない場合はhttpd.conf、フォルダに/etc/apache2、あなたはapache2.confを持っている必要があります-単純に追加します。

ServerName localhost

次に、apache2サービスを再起動します。


2
複数の仮想ホストを実行するUbuntu 12.04 LTSで完全に動作しました。
Gor

3
複数の仮想ホストを実行するMac OS 10.7.5で完全に動作しました。
DudeOnRock 2013年

1
Virtualboxを実行するMac OS 10.7.5で作業
iWizard

3
Centos 6.4で完全に動作しました。
Kel Solaar 2013

7
Centos 6(クラウドバージョン)で完全に動作しましたが、httpd.confは/ etc / httpd / conf /にありました
gbarry 2013

64

Apacheサーバーの初期インストール後、Ubuntu 12.04(Precise Pangolin)でApacheサービスを再起動中に次のエラーが発生しました

解決策は本当に簡単です。にServerNameディレクティブを追加するだけ/etc/apache2/httpd.confです:

sudo nano /etc/apache2/httpd.conf

追加: ServerName localhost

最後にApacheサーバーを再起動します。

sudo /etc/init.d/apache2 restart

1
CentOS 7内では、パスは/etc/httpd/conf/httpd.confになります
Debashis

11

したがって、これは回答されて受け入れられましたが、それでも上位の検索結果として表示され、回答は(多くの調査の結果)レイアウトされましたが、頭を悩ませてさらに掘り下げました。そこで、私が問題を解決した方法の簡単なレイアウトを示します。

サーバーがmyserver.myhome.comで、静的IPアドレスが192.168.1.150であると仮定します。

  1. hostsファイルを編集する

    $ sudo nano -w /etc/hosts
    
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    
    127.0.0.1 myserver.myhome.com myserver
    
    192.168.1.150 myserver.myhome.com myserver
    
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    ::1 myserver.myhome.com myserver
    
  2. httpd.confを編集します

    $ sudo nano -w /etc/apache2/httpd.conf
    
    ServerName myserver.myhome.com
    
  3. ネットワークを編集

    $ sudo nano -w /etc/sysconfig/network HOSTNAME=myserver.myhome.com
    
  4. 確認

    $ hostname
    
    (output) myserver.myhome.com
    
    $ hostname -f
    
    (output) myserver.myhome.com
    
  5. Apacheを再起動します

    $ sudo /etc/init.d/apache2 restart
    

myserver.myhome.comhostsファイルに127.0.0.1と静的IPアドレス192.168.1.150の両方が含まれているようです。Ubuntu ServerとCentOSでも同じです。


9

httpd.confで、「ServerName」を検索します。通常、Macではデフォルトでコメント化されています。コメントを外して入力します。/etc/hostsにもname / ipコンボセットが設定されていることを確認してください。


ありがとう、これは役に立ちました。httpdが/ etc / hostsのfqdnを取得していなかったため、ホスト名が適切に構成されているように見えました。
Banjer 2012

8

正しく編集していることを確認してください httpd.confファイルをそうすると、信頼性の低いサーバーのドメイン名に関するエラーが消えます(これが最も一般的な間違いです)。

httpd.confApache構成ファイルを見つけるには、次のコマンドを実行します。

apachectl -t -D DUMP_INCLUDES

次に、ファイルを編集し、コメントを解除するか、ServerName行を次のように変更します。

ServerName localhost

次に、次の方法でApacheを再起動します。 sudo apachectl restart


1
「正しいhtttpd.confファイルを編集していることを確認してください。」これはmacOSで役立ちました。正しいhttp.confファイルを編集していませんでした。ありがとう。
Asmeちょうど


3

このエラーを解決するには2つの方法があります。

  1. Include /etc/apache2/httpd.conf

    上記の行をファイル/etc/apache2/apache2.confに追加します

  2. この行をファイル/etc/apache2/apache2.confの最後に追加します

    ServerName localhost


1

サーバーのホスト名を/etc/apache2/httpd.confファイルとファイルに追加することにより、さまざまな状況で完全修飾ドメイン名メッセージを解決しました/etc/apache2/apache2.conf

hostname -f端末を入力します。このクエリはホスト名を返します。

次に、/etc/apache2/httpd.confファイルを編集して(または、何らかの理由でファイルが存在しない場合は作成して)、追加します。ServerName <your_hostname>ます。

または、メッセージにを追加ServerName <your_hostname>して、メッセージを削除することもできます/etc/apache2/apache2.confファイルにます。

すべてがうまくいけば、Apacheを再起動するとメッセージが消えます。


1

ほとんどの回答は、単にに追加ServerName localhostすることをお勧めし/etc/apache2/apache2.confます。

しかし、Apacheのドキュメントを引用すると :

このエラーメッセージの存在は、Apache httpdがサーバーのIPアドレスを逆引きして完全修飾ホスト名を取得できなかったことも示しています。上記の手順でいずれの場合も警告は表示されなくなりますが、この逆マッピングが機能するように名前解決を修正することもお勧めします。

したがって、そのような行をに追加する/etc/hostsと、おそらくより堅牢なソリューションになります。

192.0.2.0  foobar.example.com  foobar

どこ192.0.2.0は、名前のサーバーの静的IPアドレスであるfoobarexample.comドメイン。

たとえば、FQDNを確認できます

hostname -A

(のショートカットhostname --all-fqdn)。


1

私がこの問題を抱えていたことがわかりました。それは、スペースではなく「タブ」を使用して行をインデントしたためです。誰かを助けるために投稿するだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.