Есть ли способ изменить порядок загрузки Apache VirtualHosts?

Я использую поддомен подстановки для управления большинством моих запросов, но у меня возникает проблема получения первой моей поддомены (скажем, wiki.domain.com) для загрузки.

Я понимаю, что загружая это внутри httpd.conf, или что-то просто будет прибегать к загрузке VirtualHosts сначала, но я использую a2ensite и сайты, доступные для управления моими доменами (отдельные файлы для каждого домена), которые, насколько мне известно, означает, что у меня нет реального способа определить, какие домены сначала загружены.

Я запускаю Ubuntu Hardy.

Ответы

Ответ 1

Я считаю, что порядок загрузки происходит от имени файла конфигурации в каталоге /etc/apache 2/sites. поэтому, если вы хотите сначала загрузить один, вы должны назвать файл 000-wiki.domain.com(или a2ensite 000-wiki.domain.com)

Из любопытства, почему порядок имеет значение для вас?

Ответ 2

Чтобы проверить загруженные в данный момент виртуальные хосты (и порядок их загрузки):

httpd -S

на ОС Ubuntu вы также можете использовать следующее:

apache2ctl -S

Ответ 3

(Поскольку этот вопрос связан с системным администрированием, он лучше подходит для serverfault.com.)

В настройках по умолчанию Debian и Ubuntu сайты загружаются в алфавитном порядке (с помощью Apache Include), поэтому вы можете изменить порядок загрузки ваших сайтов путем изменения их имен. (Например, сайт по умолчанию, который предоставляет Debian, на самом деле называется 000-default, чтобы он был очень вероятен, что он будет загружаться первым.)

Ответ 4

Наконец нашел решение:)

просто откройте первый файл conf в каталоге доступных сайтов и перед первым VirtualHost *: 80 добавьте свой виртуальный хост-код.

В моем случае я хочу, чтобы hub.xxx.com.conf был до bayxxx.com.conf. Поэтому я открываю bayxxx.com.conf и размещаю виртуальный хост в начале файла

Пример:

<VirtualHost *:80>

DocumentRoot /www/hub.xxx.com/www/root
ServerName hub.xxx.com
ServerAlias *.hub.xxx.com
<Directory "/www/hub.xxx.com/www/root">
    allow from all
    Options +Indexes
</Directory></VirtualHost><VirtualHost *:80>

DocumentRoot /www/bayxxx.com/www/root

<Directory "/www/bayxxx.com/www/root">
    allow from all
    Options +Indexes
</Directory>

ServerName bayxxx.com
ServerAlias www.bayxxx.com
</VirtualHost>