2010-08-25 15 views
14

Estoy usando un subdominio de comodín para administrar la mayoría de mis solicitudes, pero estoy teniendo problemas para cargar primero uno de mis subdominios (digamos, wiki.domain.com).¿Hay alguna manera de que pueda cambiar el orden de carga de Apache VirtualHosts primero?

Entiendo que cargar esto dentro de un httpd.conf o algo así simplemente sería un caso de recurrir a VirtualHosts primero, pero estoy usando a2ensite y sites-available para administrar mis dominios (archivos individuales para cada dominio), que , que yo sepa, significa que no tengo una forma real de determinar qué dominios están "cargados" primero.

Estoy ejecutando Ubuntu Hardy.

Respuesta

23

Creo que el orden de carga proviene del nombre del archivo de configuración en el directorio/etc/apache2/sites-enabled. por lo tanto, si desea cargar uno primero, debe nombrar el archivo 000-wiki.domain.com (o a2ensite 000-wiki.domain.com)

Por curiosidad, ¿por qué la orden es importante para usted?

+1

No estoy del todo seguro, la verdad. Estoy tratando de descubrir por qué el subdominio comodín está sombreando el subdominio estático y esto parecía una conclusión lógica. ¡Además, su sugerencia ha resuelto este problema! ¡Gracias! (ps Yo te votaría pero todavía no tengo 15 representantes:/me = newbie) –

+16

El orden es importante porque la primera configuración de Vhost tiene la más alta prioridad y será la que se usará cuando los nombres de los demás no se puede emparejar: http://httpd.apache.org/docs/2.2/vhosts/examples.html – Goro

+0

Respuesta antigua pero perfecta a la pregunta de OP. Pero, ¿por qué preguntar "por qué importa el orden"? Su pregunta dice que él es "wildcarding" para un dominio v-host. Esta puede ser una posible razón para pedir/ponerle un prefijo a tus archivos conf (000-, 001- .. etc), aunque hay otras formas de lograr esto ... – bshea

0

(Debido a esta pregunta está relacionada con la administración del sistema, es más adecuado para serverfault.com.)

Según la configuración predeterminada de Debian y Ubuntu, los sitios se cargan en orden alfabético (usando Include directiva de Apache), por lo que puede cambiar el orden en que sus sitios se cargan cambiando sus nombres. (Por ejemplo, el sitio predeterminado que Debian ofrece es en realidad el nombre 000-default, para que sea muy probable que se carga en primer lugar.)

20

Para comprobar los VirtualHosts cargados actualmente (y su orden de carga):

httpd -S 

en un sistema operativo Ubuntu también se puede utilizar lo siguiente:

apache2ctl -S 
0

encontrado finalmente una solución :)

simplemente abra el primer archivo conf en el directorio sitios disponibles y antes de primero VirtualHost *: 80 agregue su código de host virtual.

En mi caso quiero que hub.xxx.com.conf esté antes de bayxxx.com.conf. Así que abro bayxxx.com.conf y pongo host virtual al principio de un archivo

Ejemplo:

<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> 
Cuestiones relacionadas