Чтобы увидеть мое описание моей проблемы напрямую, см. Часть Задача .
Контекст:
Запуск XUbuntu 14.10 и Apache 2.4.10.
Я довольно новичок в Apache, поэтому я пытаюсь настроить простой VH ... с некоторым успехом, но у меня все еще есть проблема. Я прочитал документы и не могу найти, что не так с моей конфигурации. Я хотел бы настроить два виртуальных хоста: myname.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
. Апач был перезапущен с /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) ). [+1146]
С wget
я получаю файлы, как и ожидалось. Поэтому я думаю, что это может быть связано с браузерами, а не с настройками Apache.
EDIT2
Чтобы «решить» проблему, я заменил адреса обратной связи в / etc / hosts на мой локальный IP-адрес. Кроме того, я заменил объявление VirtualHost на <VirtualHost *:80>
в обоих файлах. Теперь работает нормально!
Я все еще удивляюсь, почему Firefox не может получить правильный индекс, хотя ему предоставляется полный IP-адрес обратной связи.
Извините за длинный пост!
Спасибо
В этом случае Firefox проверит Ваш/etc/hosts как последнюю возможность для разрешения имени.
Вы можете попробовать эту работу.
about:config
в URL. keyword.enabled
и набор это к Ложному. hosts
вход, имеющий files
как первый вариант.