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


73

Apacheを(再)起動すると、この警告が引き続き表示されます。

* 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 [ OK ]

これは私のetc/hostsファイルの内容です:

#127.0.0.1  hpdtp-ubuntu910
#testproject.localhost  localhost.localdomain   localhost
#127.0.1.1  hpdtp-ubuntu910

127.0.0.1   localhost
127.0.0.1   testproject.localhost
127.0.1.1   hpdtp-ubuntu910



# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

これは私の/etc/apache2/sites-enabled/000-defaultファイルの内容です:

<VirtualHost *:80>
  ServerName testproject.localhost
  DocumentRoot "/home/morpheous/work/websites/testproject/web"
  DirectoryIndex index.php
  <Directory "/home/morpheous/work/websites/testproject/web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf /lib/vendor/symfony/symfony-1.3.2/data/web/sf
  <Directory "/lib/vendor/symfony/symfony-1.3.2/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

に移動するhttp://testproject.localhostと、空白のページが表示されます。

誰かが私が間違っていることを見つけることができますか?

回答:


52

デフォルトでは、UbuntuはApache構成でServerNameを指定しません。サーバーの名前がわからないためです。IPアドレスで逆引きを試​​行しますが、何も返されないため、ServerNameとしてIPアドレスを使用するだけです。

これを修正するには、仮想ホストの外部に ServerNameディレクティブを追加します(例:in)/etc/apache2/httpd.conf、またはプライマリIPアドレスに対して逆DNS応答を設定します-この場合、127.0.1.1

それも無視しても大丈夫です。


3
これは直感に反します。仮想ホストの外部にServerNameを追加する場合-同じApacheサーバーから複数の仮想ホストを提供するにはどうすればよいですか?(結局、これは名前付き仮想サーバーのポイントです)-なし、あなたは(たとえば)/etc/apache2/httpd.confに複数のServerNameエントリを持つことができると言っています
-user35402

7
次に、VirtualHostブロック内にServerName / ServerAliasを追加して、そのVirtualHostが必要なホスト名にのみ一致するようにします。ローダウンについては、httpd.apache.org / docs / 2.2 / mod / core.html#servername参照してください。
crb

私はこの答えを1時間以上探しています。これに関してはインターネット上で多くのがらくたが、これは私の問題を修正しました。Thx
マイク

@Mikeあなたと他の人は天才です!この答えを4日間探しています。(OK、完全に営業日ではありません。)。+1。これは、仮想ホストに影響を与えずに仮想ホストの外部にServerNameディレクティブを追加できることを説明する最初の回答だからです。それを念頭に置いて、ReinoutSのソリューションは私にとってはうまくいきました(彼にも+1)。
ソニーサントス

27

簡単な修正を次に示します。

echo ServerName $HOSTNAME > /etc/apache2/conf.d/fqdn

ありがとう。/ etc / hostsやhttpd.confを使用した修正は私には機能しませんでしたが、これは機能しました。
ライアン

1
Ubuntu 13.04でapache2を実行して修正しました、ありがとうございます!
dmanexe

16

その警告を回避する別の方法は、完全修飾ドメイン名をの127.0.1.1行に置くことです/etc/hosts。DNSサーバー上の実際に解決されるfqdnである必要はありません。

127.0.1.1  hpdtp-ubuntu910.lan  hpdtp-ubuntu910

余分なことを期待していないプログラムの動作も維持しながら、トリックを行います.lan。順序は重要です。.lanアドレスが他のアドレスの前に来るこの例のように、より多くのレベルを持つ名前を最初に指定する必要があります。


7

このソリューションは、私の開発ニーズに合っています:

バックグラウンド:

Debian Linux Sid:
VirtualHost開発:10個のサーバー名があります(サイト内に10個の仮想ホストエントリがあります)

それぞれに一意のローカルホストIPアドレスを割り当てました/etc/hosts

127.0.0.1   joe   localhost.localdomain   localhost
127.0.1.1   joe
127.0.1.2   joomla
127.0.1.3   schmoo
127.0.1.4   forrest
127.0.1.5   store
127.0.1.6   publisher
127.0.1.7   studios
127.0.1.8   drupal
127.0.1.9   graphics
127.0.1.10  wordpress
...

The following lines are desirable for IPv6 capable hosts

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

別の仮想ホストを追加する場合(開発用にかなりの数があります)、別のローカルホストIPアドレスにエントリを追加し、Apache 2.2を再起動する前にサイトを有効にします。

127.0.0.11 *newhost*

VirtualHostファイルとして有効にするすべてのエントリに対して:

/ etc / apache2 / sites-available /

joe joomla schooフォレストストアパブリッシャースタジオdrupalグラフィックスワードプレス

すべての仮想ホストは、 a2ensite / a2dissite ホスト名を介して有効化/無効化されます

エラーを抑制するには

Webサーバーの再起動:apache2apache2:ServerNameに127.0.0.1を使用して、サーバーの完全修飾ドメイン名を確実に決定できませんでした...待機中apache2:ServerNameに127.0.0.1を使用して、サーバーの完全修飾ドメイン名を確実に決定できませんでした ''

[Debianの空のファイル]のhttpd.confを編集し/etc/apache2/httpd.confます。

ServerName 127.0.1.1

次に、追加したすべての名前のルックアップが解決され、コメントアウトされるか、その行が無効になります。

忘れた場合:唯一のVirtualHost *:80エントリは、ports.confファイル内にある必要があります。

/etc/apache2/ports.conf

**NameVirtualHost *:80**
Listen 80

<IfModule mod_ssl.c>
   # If you add NameVirtualHost *:443 here, you will also have to change
   # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
   # to <VirtualHost *:443>
   # Server Name Indication for SSL named virtual hosts is currently not
   # supported by MSIE on Windows XP.
   Listen 443
</IfModule>

<IfModule mod_gnutls.c>
   Listen 443
</IfModule>

VirtualHostエントリ内でVirtualHost *:80を省略します

例:virtualhost joe

<VirtualHost *:80>
    **ServerAlias joe**
    **...**
</VirtualHost>

6

ServerNamehttpd.confでの設定は機能しませんでした。で設定ServerName 127.0.0.1して修正しました/etc/apache2/conf.d/name

Ubuntu 12.10 Alpha3を実行しておりServerName、両方のスポットで定義しています。

ソース:http : //linuxconfig.net/manual-howto/error-solution-could-not-reliably-determine-the-servers-fully-qualified-domain-name.html


クール、これも私にとってはうまくいきましたが、同じ問題がありました。
Priyank Bolia

5

サーバー構成レベルのServerNameエントリがありません。Apacheをデフォルトとして使用するには、ホストの外部にServerNameエントリが必要です。

VirtualHost内にServerNameエントリを配置しても、問題は解決しません。ServerNameディレクティブを参照してください。


3

修正するには、/ etc / apache2 / httpd.confまたは/etc/apache2.confを編集して、次の行を追加する必要があります。

ServerName nameofserver

1
あなたが正しい!しかし、この回答は、新しい情報や洞察を提供することなくcrbの回答の内容を複製します。削除するか、他の人の答えとは異なる詳細を追加することを検討します。
ロイスウィリアムズ

1

ServerNameデフォルトの仮想ホストに追加する必要があると思います。存在しないため、デフォルトのIPアドレスを使用しています。そして、それは一種の警告です。あなたのウェブサーバーはまだ機能していると思います。


あなたのコメントがわかりません。ファイルにServerNameが既にあります:<VirtualHost 127.0.0.1:8080> ServerName mysite.localhostコメントを明確にしてください。

1
-default-仮想ホストの場合、特定の仮想ホストだけではありません。
クズカイ

0
  1. 次の手順を使用して、httpd.confファイルにServerNameを追加する必要があります

    sudo gedit /etc/apache2/httpd.conf
    

    デフォルトでは、httpd.confファイルは空白になります。ここで、次の行をファイルに追加するだけです。

    ServerName localhost
    

    ファイルを保存し、を終了しgeditます。最後にサーバーを再起動します。

    sudo /etc/init.d/apache2 restart
    

2)Include httpd.conf最後に追加apache2.conf


-1

インストール後にhttpd.confファイルがetc / apache2ディレクトリにまだ存在しない場合、メインのApache構成ファイルapache2.confはその参照を持たないため、作成されたhttpd.confに何かを追加しても何でも。代わりに、単に「ServerName hostname」という行をapache2.confファイルに追加できます。


-1

/ etc / hostsにはまだこれらのエントリがありますか?(上記のいくつかの回答をスキップしました)

127.0.0.1 localhost 127.0.0.1 testproject.localhost

ここでは、両方のIPアドレス127.0.0.1は同じです。

ループバックIPサブネットからtestproject.localhostに異なるIPアドレスを与えます。

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