Я пытаюсь использовать виртуальный хост в своей конфигурации Apache для настройки поддомена. Мои настройки:
NameVirtualHost *:80
<VirtualHost *>
ServerName www.website.com
DocumentRoot "/var/www/html"
</VirtualHost>
<VirtualHost *>
ServerName wiki.website.com
DocumentRoot "/var/www/dekiwiki"
</VirtualHost>
Когда я перезапускаю apache, и www.website.com, и wiki.website.com переходят на основной веб-сайт в / var / www / html.
Любая помощь приветствуется.
В VirtualHost необходимо использовать ту же подпись, что и в NameVirtualHost:
<VirtualHost *:80>
Вот как я делаю поддомены на моем сервере apache2 ...
NameVirtualHost *:80
# Many other hosts...
<VirtualHost servers.international-anarchy.com>
ServerName servers.international-anarchy.com
DocumentRoot "/http/international-anarchy.com/servers/"
<Directory "/http/international-anarchy.com/servers/">
Options +Indexes FollowSymLinks
AllowOverride None
Allow from all
Order allow,deny
</Directory>
</VirtualHost>
<VirtualHost status.international-anarchy.com>
ServerName status.international-anarchy.com
DocumentRoot "/http/international-anarchy.com/status/"
<Directory "/http/international-anarchy.com/status/">
Options +Indexes FollowSymLinks
AllowOverride All
Allow from all
Order allow,deny
</Directory>
</VirtualHost>
Вот как я получаю apache2 для правильного рендеринга поддоменов для каждого хоста, и я помещаю все эти настройки в файл виртуальных хостов, который включается непосредственно из основной конфигурации apache.
Я нашел проблему. Поскольку виртуальный хост был настроен на:
NameVirtualHost *:80
Мне также нужно было установить порт в директивах VirtualHost. Так
<VirtualHost *:80>
а не просто
<VirtualHost *:80>
Использование команды 'httpd -S' показало мне, что виртуальный хост не был взят
Есть ли у вас какие-либо директивы Listen после директивы для порта 80?
Если да, возможно, вам потребуется изменить <VirtualHost *>
к <VirtualHost *:80>
Вы можете указать: порт, чтобы изменить соответствующий порт. Если не указан, то по умолчанию используется тот же порт, что и самый последний оператор Listen главного сервера.. Вы также можете указать: * для соответствия всем портам на этом адресе
из http://httpd.apache.org/docs/2.2/mod/core.html#virtualhost