У меня есть несколько сайтов, настроенных как VirtualHosts с использованием Apache, которые какое-то время работали нормально. Недавно я изменил имя хоста сервера на одно из обслуживаемых доменных имен, а также добавил его в / etc / hosts, указывая на внешний IP-адрес сервера.
Поскольку я это сделал, доступ к домену с моего ноутбука приводит меня к настройке Apache по умолчанию «Это работает!» стр. Если я удаляю 000-default из / etc / apache2 / sites-enabled /, он отображает правильный сайт. Попытка получить доступ к сайту с помощью «www.» Префикс выводит меня на правильный сайт, независимо от того, включено ли значение по умолчанию 000 для сайтов.
Исходя из всего этого, я предполагаю, что конфигурация по умолчанию обслуживает страницу по умолчанию из-за того, как я настроил имя хоста или / etc / hosts (или оба), но я не могу понять, как это отключить, пока оставив эти настройки как есть. Любые предложения приветствуются!
Редактировать - моя текущая конфигурация VirtualHost выглядит следующим образом:
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
ServerAdmin me@domain.com
DocumentRoot /srv/www/domain
ErrorLog /srv/www/domain/logs/error.log
CustomLog /srv/www/domain/logs/access.log combined
</VirtualHost>
Подводя итог: у меня настроено несколько виртуальных хостов, и это единственный, который не работает должным образом. Я могу получить доступ к http://www.domain.com просто отлично, но http://domain.com приводит меня к настройкам Apache по умолчанию "Это работает!" стр. Если я отключаю конфигурацию по умолчанию 000, она показывает правильную страницу. Это начало происходить только после того, как я установил имя хоста сервера на domain.com и добавил строку в / etc / hosts, указывающую domain.com на внешний IP-адрес сервера. Я бы хотел оставить это так, если это возможно.
Изменить: я побежал, apache2ctl -S
так как /usr/sbin/apache2 -S
дал мне «apache2: плохое имя пользователя $ {APACHE_RUN_USER}». Вот вывод:
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server domain.com (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost domain.com (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost other.com (/etc/apache2/sites-enabled/other:1)
port 80 namevhost another.com (/etc/apache2/sites-enabled/another:1)
port 80 namevhost domain.com (/etc/apache2/sites-enabled/domain:1)
Syntax OK
источник
Ответы:
Потерял этот вопрос на днях.
Если у вас есть контейнер <VirtualHost> без компонента ServerName, он будет использовать имя хоста по умолчанию. Поскольку 000-default, вероятно, не имеет компонента ServerName и является первым включаемым в алфавитном порядке, поэтому он отвечает за hostname.com и не позволяет вашему явно объявленному имени хоста работать.
источник
ServerName example.com
в конфигурации по умолчанию работает отлично, хотя. Спасибо!У вас есть где-нибудь директива NameVirtualHost *: 80?
Пытаться:
Это скажет вам, как apache анализирует файл конфигурации. У вас есть конфиги с реальными IP-адресами или у всех есть *? Есть ли у вас пропустить: 80? Apache не любит смешивать их.
Есть ли у вас ServerName domain.com или ServerAlias domain.com по умолчанию?
источник
Проверьте ServerName и ServerAlias в директиве VirtualHost:
Читайте: http://httpd.apache.org/docs/2.2/mod/core.html#serveralias , http://httpd.apache.org/docs/2.2/vhosts/
источник
Это сработало:
когда у меня была опечатка, она НЕ работала (директива ServerName дважды):
Когда у меня дважды была директива ServerName, она продолжала преобразовываться в первый из перечисленных сайтов (здесь не показан).
надеюсь, это кому-нибудь поможет ...
источник
У меня была похожая проблема, и я исправил ее, явно указав имя сервера в главном файле httpd.conf, вместо того, чтобы позволить apache автоматически выяснить, что это было. Я предполагаю, что решение Apache было таким же, как мой vhost (определено позже), поэтому по умолчанию один "победил", переопределяя настройку vhost.
Я просто установил в httpd.conf ServerName имя хоста, которое есть у машины, для которого я никогда не буду обслуживать веб-страницы.
источник