2010-08-25 2 views
14

J'utilise un sous-domaine générique pour gérer la plupart de mes requêtes, mais je suis confronté à un problème de chargement d'un de mes sous-domaines (disons, wiki.domain.com). Je comprends que charger ceci à l'intérieur d'un httpd.conf ou quelque chose serait juste un cas de recours que les VirtualHosts chargeront en premier, mais j'utilise a2ensite et les sites disponibles pour gérer mes domaines (fichiers individuels pour chaque domaine), qui , à ma connaissance, signifie que je n'ai aucun moyen de déterminer quels domaines sont "chargés" en premier.Y a-t-il un moyen de changer l'ordre de chargement des serveurs Apache VirtualHost?

Je cours sous Ubuntu Hardy.

Répondre

23

Je crois que l'ordre de chargement provient du nom du fichier de configuration dans le répertoire/etc/apache2/sites-enabled. donc si vous en vouliez un en premier, vous nommeriez le fichier 000-wiki.domain.com (ou a2ensite 000-wiki.domain.com)

Par curiosité, pourquoi la commande est-elle importante pour vous?

+1

Je ne suis pas tout à fait sûr, honnêtement. Je vais juste essayer de comprendre pourquoi le sous-domaine générique masque le sous-domaine statique et cela semble être une conclusion logique. En outre, votre suggestion a résolu ce problème! Merci! (ps je voterais vous mais je n'ai pas encore 15 représentant:/me = newbie) –

+16

L'ordre est important parce que la première config Vhost a la plus haute priorité et sera celle qui s'utilise lorsque les noms des autres ne peut pas être apparié: http://httpd.apache.org/docs/2.2/vhosts/examples.html – Goro

+0

Ancien, mais la réponse parfaite à la question OP. Mais pourquoi demander "pourquoi l'ordre est-il important"? Sa question indique qu'il est "wildcarding" pour un domaine v-host. Cela peut être une raison possible de commander/préfixer vos fichiers conf (000-, 001- .. etc) - bien qu'il existe d'autres façons d'y parvenir .. – bshea

0

(Parce que cette question est liée à l'administration du système, il est mieux adapté pour serverfault.com.)

Selon la configuration par défaut de Debian et Ubuntu, les sites sont chargés dans l'ordre alphabétique (en utilisant la directive Include Apache), de sorte que vous pouvez changer la l'ordre dans lequel vos sites se chargent en changeant leurs noms. (Par exemple, le site par défaut que Debian fournit est en fait le nom 000-default, pour le rendre très probable qu'il se charge d'abord.)

20

Pour vérifier les Virtualhosts actuellement chargés (et leur ordre de chargement):

httpd -S 

sur un système d'exploitation Ubuntu, vous pouvez également utiliser les éléments suivants:

apache2ctl -S 
0

a finalement trouvé une solution :)

il suffit d'ouvrir le premier fichier conf dans le répertoire sites-disponibles et avant le premier VirtualHost *: 80 ajoutez votre code hôte virtuel.

Dans mon cas, je souhaite que hub.xxx.com.conf soit avant bayxxx.com.conf. Alors j'ouvre bayxxx.com.conf et le lieu hôte virtuel au début d'un fichier

Exemple:

<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> 
Questions connexes