Есть ли способ изменить порядок загрузки 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>