Вот ошибка, которую я получаю при загрузке Apache2:
* Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
[Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
[Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
[Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
[Wed Oct 21 16:37:26 2009] [warn] NameVirtualHost *:80 has no VirtualHosts
Сначала я следовал этому руководству по настройке Apache для размещения нескольких сайтов:
Затем я нашел похожий вопрос на ServerFault и попытался применить решение, но это не помогло.
Вот пример моей окончательной конфигурации VirtualHost:
<VirtualHost *:80>
ServerAdmin admin@xxx.com
ServerName www.xxx.com
ServerAlias xxx.com
# Indexes + Directory Root.
DirectoryIndex index.html
DocumentRoot /var/www/www.xxx.com
# Logfiles
ErrorLog /var/www/www.xxx.com/logs/error.log
CustomLog /var/www/www.xxx.com/logs/access.log combined
</VirtualHost>
с доменом Икс, чтобы защитить невинных :-)
Кроме того, у меня есть файл conf.d / virtual.conf, упомянутый в руководстве, который выглядит следующим образом:
NameVirtualHost *
Странно то, что на двух из трех сайтов все работает нормально.
apache-2.2
virtualhost
rcampbell
источник
источник
Ответы:
IP-адреса с именами
NameVirtualHost
должны соответствовать IP-адресу в каждомVirtualHost
элементе.Пример:
Прочитайте документацию Apache Virtual Host для подробностей.
источник
Заменить это:
С этим:
источник
Добавляя к ответам, я заметил одну вещь: вы не можете запустить SSL без явного объявления: 80 в каждой директиве NameVirtualHost и VirtualHost, apache не будет поддерживать наличие:
NameVirtualHost *
а также
NameVirtualHost *: 443
Смешанный в той же конфигурации, вы получите ошибки при прослушивании Apache на нулевом порту, если вы это сделаете.
Для меня я просто добавил: 80 для каждого хоста, чтобы SSL мог работать по собственному усмотрению.
источник
Пример:
<VirtualHost 85.25.97.252:80>
ServerName
domain.com ServerAlias * .domain.com ServerAdmin
webmaster@domain.com
DocumentRoot "/var/www/domain.com/httpdocs/"
<Каталог "/var/www/domain.com/ httpdocs / ">
Параметры Индексы FollowSymLinks
AllowOverride All
Order разрешить, запретить
Allow from all
</ Directory>
</ VirtualHost>
источник