En este tutorial vamos a ver como configurar un Host Virtual en Apache2 basado en Nombre e popular servidor web de software libre y código abierto.
Hay varios tipos de Virtual Host el más popular es el basado en Nombre y es el que aprenderemos a configurar a continuación
Que es un Host Virtual (ó Virtual Host) basado en Nombre
No es más que hospedar múltiples dominios del estilo (www.ejemplo.com, www.otrodominio.com, etc) bajo una misma dirección IP. Este tipo de configuración es muy común en los Hosting compartidos, donde múltiples clientes comparten un mismo servidor.
Para este tutorial debes tener un servidor Apache funcionando, puedes revisar los siguiente tutoriales donde explico como instalar un servidor LAMP el cual incluye el servidor Apache.
Como instalar un Servidor LAMP en Ubuntu Paso a Paso
Como instalar un Servidor LAMP en Fedora 12 paso a paso
Host Virtuales en Apache
Aquí va un poco de teoría para explicar como funciona si quieres puedes ir de una vez a la Configuración.
Apache 2 tiene varios directorios de configuración, los que nos interesan en este momento son dos el /etc/apache2/sites-available/ y el /etc/apache2/sites-enable, el primero tiene los archivos de configuración de los sitios disponibles y el segundo son links simbólicos de los sitios activos, por defecto al instalar Apache se crea un archivo llamado default que contiene la configuración básica de acceso de Apache y es un archivo que no se debe borrar.
Configurar Host Virtual Basado en Nombre
Sólo tenemos que seguir los siguientes pasos:
Vamos a suponer que queremos crear un Host Virtual llamado www.ejemplo.com y que la dirección IP pública de nuestro servidor es 10.0.0.5.
1. Creamos un archivo en /etc/apache2/sites-available llamado ejemplo.com
En Ubuntu :
sudo nano /etc/apache2/sites-available/ejemplo.com
En Fedora como root:
su -
nano /etc/apache2/sites-available/ejemplo.com
Aquí estoy usando el editor de texto nano pueden usar el de su preferencia (vim, emacs, gedit, kate, etc).
2. Dentro del archivo ejemplo.com que acabamos de crear escribimos lo siguiente:
<Virtual Host 10.0.0.5:80>
ServerName www.ejemplo.com ServerAlias ejemplo.com *ejemplo.com DocumentRoot /var/www/ejemplo</Virtual Host>
Vamos a ver línea por línea:
- Empezamos con
<Virtual Host 10.0.0.5:80>
Aquí estamos indicando la directiva VirtualHost para decir que es un Servidor Virtual indicamos la dirección IP donde va a responder y el puerto (80 es el puerto por defecto donde escucha Apache). Si queremos que escuche en todas las direcciones IP quitamos la dirección y colocamos un asterisco quedaría *:80. - ServerName es el nombre del servidor en nuestro caso es www.ejemplo.com
- ServerAlias son otras formas que el usuario puede escribir el nombre, sin el www y el *.ejemplo indica que puede tener subdominios como foro.ejemplo.com, y todos irán a la misma página.
- DocumentRoot es donde están guardados los archivos de nuestra página. En este caso en /var/www/ejemplo pero puede ser cualquier carpeta donde tengan los archivos (cuidado con la seguridad y los permisos de la carpeta.
3. Guarda el archivo y ejecuta en el terminal el siguiente comando como administrador (o con sudo según el caso):
a2ensite ejemplo.com
Este comando crea un link simbólico en la carpeta /etc/apache2/sites-enabled, para activar nuestro sitio.
4. Reinicia el Apache:
Ubuntu:
sudo service apache2 restart
Fedora:
su -
service httpd restart
Y prueba en tu navegador que funciona correctamente escribiendo la dirección www.ejemplo.com (o la que hayas configurado) te debería aparecer la pagina que elegiste. Si estás utilizando un servidor interno de pruebas sin dirección IP pública recuerda colocar en el archivo /etc/resolv.conf de la PC desde donde vayas accesar la dirección y nombre del dominio algo como:
10.0.0.5 www.ejemplo.com
Para que no haga la petición al DNS y sepa a que dirección debe apuntar.
Eliminar un Host Virtual en Apache
Si queremos deshabilitar el sitio ejecutamos como root o utilizando sudo:
a2dissite ejemplo.com
Esto elimina el link simbólico a /etc/apache2/sites-enabled/, y deja de funcionar el Host Virtual.
Eso es todo por ahora en la serie de artículos de Apache, como siempre cualquier duda, pregunta o sugerencia puedes dejar tu comentario.