Apache 2.4.10 VirtualHost インデックス ページが表示されない

Apache 2.4.10 VirtualHost インデックス ページが表示されない

私の問題の説明を直接見るには、問題一部。

コンテクスト:

XUbuntu 14.10 と Apache 2.4.10 を実行しています。

私は Apache の初心者なので、シンプルな VH を設定しようとしています... ある程度は成功しましたが、まだ問題があります。ドキュメントを読んでも、設定のどこが間違っているのかわかりません。2 つの仮想ホストを設定したいと思います。マイネームそしてペンギン

構成

以下は私の現在の構成の簡単な説明です (網羅的ではありません)。

apache2.conf は、

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options +Indexes 
        Options FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>


<Directory /var/www/html/flashlight/>
        AllowOverride All
</Directory>

<FilesMatch "^\.ht">
        Require all denied
</FilesMatch>

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

/etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>
    ServerName www.example.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    <Directory /var/www/>
        AuthName "Mon domaine"
        AuthType Basic
        AuthUserFile /etc/apache2/users.passwd
        Options +Indexes 
        Options FollowSymLinks
        AllowOverride None
        Require valid-user
    </Directory>
</VirtualHost>

/etc/apache2/sites-enabled/myname.conf

<VirtualHost 127.0.0.2:80>
    ServerName myname.com
    ServerAlias www.myname.com
    DocumentRoot /var/www/html/myname

    <Directory /var/www/html/myname>
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

ペンギンを有効にするには

<VirtualHost 127.0.0.3:80>
    ServerName penguin.com
    ServerAlias www.penguin.com
    DocumentRoot /var/www/html/penguin

    <Directory /var/www/html/penguin>
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

両方の仮想ホストは、Apache ドキュメントの説明に従って、 を使用して有効化されましたa2ensite。Apache は、 を使用して再起動されました/etc/init.d/apache2 graceful。 で/var/www/html/penguin、仮想ホスト上にいるかどうかを確認するための簡単なファイル/var/www/html/mynameを作成しました。index.html

最終的に、以下/etc/hostsを含むように変更しました:

127.0.0.1       localhost
127.0.0.2       myname.com
127.0.0.3       penguin.com

設定を確認するには、以下を実行してapachectl -S確認できます。

VirtualHost configuration:
127.0.0.3:80           penguin.com (/etc/apache2/sites-enabled/penguin.conf:1)
127.0.0.2:80           myname.com (/etc/apache2/sites-enabled/myname.conf:1)
*:80                   www.example.com (/etc/apache2/sites-enabled/000-default.conf:1)

問題

penguin.com2 つの仮想ホストが構成されたので、それらにアクセスしようとします。ブラウザ (Firefox) でアクセスしようとすると、/var/www/html/index.html ではなく が表示されます。正しいインデックス ページを表示するには、/var/www/html/penguin/index.html明示的に記述する必要があります。penguin.com/index.html

しかし、アクセスしてみるとmyname.com正しいインデックスが提供される!?

さらに、Chrome でこれらのサイトにアクセスすると、この問題は発生せず、正しいインデックス ページが直接表示されます。

私の Apache 設定に問題があるのでしょうか? それとも、Firefox にのみ関係していると思いますか (/etc/hosts正しく読み取れない可能性があります)?

編集

IP (127.0.0.2/3) 経由でページにアクセスすると、Firefox でも同じ問題が発生することを忘れていました (127.0.0.2 のみが機能します)。

を使用するとwget、期待どおりにファイルを取得できます。したがって、これは Apache の設定ではなく、ブラウザに関連している可能性があります。

編集2

この問題を「解決」するために、/etc/hosts のループバック アドレスをローカル IP アドレスに置き換えました。さらに、<VirtualHost *:80>両方のファイルで VirtualHost 宣言を置き換えました。これで正常に動作するようになりました。

しかし、完全なループバック IP アドレスが指定されたときに Firefox が正しいインデックスを取得できなかったのはなぜなのか、いまだに疑問に思っています。

長い投稿ですみません!

ありがとう

答え1

この場合、Firefox は名前解決の最後のオプションとして /etc/hosts をチェックします。

この回避策を試すことができます。

  1. Firefox を開いてabout:configURL を入力します。
  2. 検索しkeyword.enabledてFalseに設定します。
  3. /etc/nsswitch.conf で、hostsエントリがfiles最初のオプションになっていることを確認します。

関連情報