iTank ideas

Como configurar Apache para servir multiples hosts y dominios

Vamos a crear 3 host para el dominio tudominio.com: shop, www y fotolog y hacer que para cada uno nuestro servidor web Apache responda con una web distinta.

Aunque este tutorial se podría utilizar para configurar varias webs de múltiples dominios como www.dominio1.com, www.dominio2.com, www.dominio3.com en el mismo servidor.

Preparar el servidor web

Se asume Ubuntu Server 10.04 LTS como sistema operativo de servidor, con PHP instalado.

Estoy preparando este tutorial de memoria así que podrían no ser exacto, aunque lo he hecho tantas veces que seguro funcionará.

Reproducir el escenario en la INTRANET local

para comenzar usaremos el truco del fichero hosts, luego ya hablaremos de cómo editar los hosts DNS de nuestro dominio

Crearemos estas líneas en el fichero hosts de el puesto desde el que usamos el navegador web para las pruebas
también hay que añadirlas en el hosts del servidor

192.168.0.100 shop.tudominio.com
192.168.0.100 www.tudominio.com
192.168.0.100 fotolog.tudominio.com

Algunas NOTAS sobre el fichero hosts:

  • si es un GNU/Linux estará en /etc/hosts
  • si es un windows estará en %windir%/system32/drivers/etc/hosts
  • si es un vista o un windows 7 es imprescindible que ejecutes el bloc de notas con botón derecho ‘ejecutar como administrador’ o no podrás editarlo bien

Preparar las webs en el directorio HOME

primero prepara en tu HOME los directorios root para cada una de tus webs

crea un directorio public_html en tu directorio de usuario
$ mkdir /home/usuario/public_html

crea tres directorios en public_html: www.tudominio.com, shop.tudominio.com, fotolog.tudominio.com

crea un fichero de prueba www.tudominio.com/index.php con el texto

puedes usar un editor como vi o nano o subirlo por ftp

$ nano /home/usuario/public_html/www.tudominio.com/index.php

crea un fichero de prueba shop.tudominio.com/index.php con el texto
crea un fichero de prueba fotolog.tudominio.com/index.php con el texto

más adelante podrás acceder por ftp a tu servidor y subir ficheros a tu directorio personal, crear carpetas pero este es un ejemplo sencillo.

Configurar APACHE2

el siguiente paso es configurar apache para que cuando reciba una petición por un determinado host de un dominio lo redirija al directorio en el que están los
ficheros correspondientes a su web

hay que activar la ejecución de PHP en los directorios de usuario:

# a2enmod userdir

y configurar Apache para que sirva cada host en su directorio
hace años había un gran fichero de configuración httpd.conf pero ahora es mucho más ácil porque puedes tener ficheros de configuración individuales y puedes activarlos y desactivarlos con un comando simple a2ensite y a2dissite

yo utilizo uno por dominio y en él declaro todos sus hosts

la convención es nombre-dominio.extension.conf aunque en la práctica

crea un fichero tudominio.com.conf en

# /etc/apache2/sites-available/

el contenido del fichero debería ser algo como esto:
<VirtualHost *>
ServerName www.tudominio.com
ServerAdmin webmaster@tudominio.com
DocumentRoot /home/usuario/public_html/www.tudominio.com
</VirtualHost>

<VirtualHost *>
ServerName shop.tudominio.com
ServerAdmin webmaster@tudominio.com
DocumentRoot /home/usuario/public_html/shop.tudominio.com
</VirtualHost>

<VirtualHost *>
ServerName fotolog.tudominio.com
ServerAdmin webmaster@tudominio.com
DocumentRoot /home/usuario/public_html/fotolog.tudominio.com
</VirtualHost>

No me voy a liar con más opciones para un VirtualHost, hay infinitos parámetros en
http://httpd.apache.org/docs/2.0/en/mod/core.htm

Activaremos el nuevo fichero de configuración con el comando

# a2ensite tudominio.com.conf

de la misma manera es posible desactivarlo con a2dissite

Po último forzaremos a Apache para recargue la configuración ¡en caliente y sin reiniciar!

# /etc/init.d/apache2 reload

Probar el resultado

visita desde el navegador web del pc en el que modificaste el fichero hosts http://www.tudominio.com, http://fotolog.tudominio.com, http://shop.tudominio.com

¿funcionó? entonces deja un comentario.

 

Actualización sobre Ubuntu Server 16.04 LTS y 18.04 LTS

Aunque el procedimiento sigue siendo válido, desde al menos ubuntu Server 16.04 se requiere que los ficheros de configuración tengan la extensión .conf

De otro modo el comando a2ensite retorna el mensaje

ERROR: Site tudominio.com does not exist

4 thoughts on “Como configurar Apache para servir multiples hosts y dominios

  1. Listo Mario!!! al finnnnn pude, pensé que esto me iba a ganar pero a la final con tu ayuda y un poco de paciencia lo pude hacer, por mas vueltas que le daba y le daba al principio no podía pero bueno a la final era problema del sub-dominio en la consola de administración de 1&1, gracias por ayudarme, por tenerme paciencia aveces y tener la cortesía de currarte estos post para que uno aprenda!!! al principio me decías me tienes que enseñar algo a cambio y la verdad es que no se que voy a terminar enseñándote, ya las birras no se perdí la cuenta yo creo que vamos a tener que transformar lote de birras de 6 meses por una botella de ese Whisky que tanto te gusta.

    A la final ya pude con los vhost y con el re-direccionamiento desde la configuracion de apache que hablamos esta tarde lo del index.html con el lo he quitado como me haz dicho.

    Ahora te tienes que hacer un post de como poner tu correo personal con google jajajajaja «yo si soy abusador», por lo que te entendí el otro día creo que se trata de crear un nuevo sub-dominio por ejemplo «correo.procrethink.com y los DNS de ese sub-dominio mandarlas a la IP de GMAIL?

    Ahora me pondré a currar con el theme y a arreglar los post que he importado desde bloger que se han importado un poco raros y bueno a ver si la semana que viene te sorprendo con mi nuevo blog.

    Gracias….

    1. me alegra que lo hayas conseguido, estos post los hago siempre como ejercicio para aprender, me valen para poner todas las ideas en orden y como documento consultivo permanente. Ya ves que algunos de los enlaces que te pasé llevan un lustro en mi viejo blog.

      lo del correo es lo más fácil, y no tengo que escribirte ningún post, sólo tienes que seguir las instrucciones de Google Apps

Comments are closed.