Назад | Перейти на главную страницу

Настройка поддомена с использованием проблемы виртуального хоста apache

Я пытаюсь использовать виртуальный хост в своей конфигурации 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