it-swarm-es.com

Hosts virtuales dinámicos en Apache

Mi archivo httpd-vhosts.conf se ve así:

<VirtualHost *:80>
DocumentRoot "/www/foo/htdocs"
ServerName foo
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/www/bar/htdocs"
ServerName bar
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/www/baz/htdocs"
ServerName baz
</VirtualHost>

¿Notar el patrón? ¿Hay alguna forma de reducir la duplicación, o estoy atrapado con tener una entrada de ShostHost separada para cada sitio?

5
Patrick McElhaney

Me di cuenta de cómo hacerlo después de leer la respuesta oscura de Ninja. Esto es lo que se ve mi archivo httpd-vhosts.conf ahora.

# Dynamic virtual hosts.
# See http://httpd.Apache.org/docs/2.0/mod/mod_vhost_alias.html
UseCanonicalName Off
VirtualDocumentRoot /www/%0/htdocs/

También tuve que habilitar MOD_VHOST_ALIAS al no comprometer esta línea en httpd.conf

LoadModule vhost_alias_module modules/mod_vhost_alias.so
2
Patrick McElhaney

Le sugiero que eche un vistazo al sitio web de Apache para hosts virtuales dinámicos. Los otros métodos requieren un reinicio del servidor Apache.

http://httpd.apache.org/docs/2.0/vhosts/mass.html

3
Dark Ninja

Hay dos respuestas muy diferentes.

  1. Utilice el truco "subdominio-as-cuenta-carpeta".
  2. Escriba un archivo de script y configuración cortos que juntos genen su (s) archivo httpd-vhosts.conf dinámicamente. Luego, el script y la configuración se convierten en sus maestros, y los archivos .conf son "prescindibles".

Recomiendo # 2, y creo que los programadores pragmáticos también podrían.

0
James A. Rosen