Страница индекса Apache 2.4.10 VirtualHost не отображается

Страница индекса Apache 2.4.10 VirtualHost не отображается

Чтобы увидеть мое описание моей проблемы напрямую, см.Проблемачасть.

Контекст:

Работает под управлением XUbuntu 14.10 и Apache 2.4.10.

Я новичок в Apache, поэтому пытаюсь настроить простой VH... с некоторым успехом, но проблема все еще есть. Я прочитал документацию и не могу найти, что не так с моей конфигурацией. Я хотел бы настроить два виртуальных хоста:моеимя.comиpenguin.com.

Конфигурация

Вот краткое описание (не исчерпывающее) моей текущей конфигурации.

/etc/apache2/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>

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

<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.comв моем браузере (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 на <VirtualHost *:80>в обоих файлах. Теперь все работает отлично!

Я все еще удивляюсь, почему Firefox не смог получить правильный индекс, имея полный IP-адрес обратной связи.

Извините, за длинную статью !

Спасибо

решение1

В этом случае Firefox проверит ваш /etc/hosts в качестве последнего варианта для разрешения имен.

Вы можете попробовать этот обходной путь.

  1. Откройте Firefox и введите about:configURL.
  2. Найдите keyword.enabledи установите значение False.
  3. Убедитесь, что в /etc/nsswitch.conf hostsзапись имеет filesпервый параметр.

Связанный контент