Crear un Virtual Host de Apache en Ubuntu

En primer lugar vamos a explicar que esto de un Virtual Host. Un Virtual Host es un archivo o conjunto de líneas de código que contiene información y configuración para un dominio dominio y que le indican al servidor Apache como responder a las peticiones de  dominios. Por ejemplo, yo,  al trabajar proyectos web en local, a veces en vez de usar la típica URL “http://localhost/miproyecto” prefiero trabajar simulando un dominio real, p.e: “http://kudesare”. Es cuando configuro un Virtual Host.

Apache incluye un archivo Virtual Host por defecto denominado 000-default.conf que podemos usar . Realizaremos una copia para trabajar sobre ella y crear nuestro Virtual Host para cada dominio.

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/kudesare.conf

Ahora lo abrimos para editarlo como root

sudo vim /etc/apache2/sites-available/kudesare.conf

Y ponemos el código correspondiente

<VirtualHost *:80>
 ServerName kudesare
 ServerAlias kudesare www.kudesare
 DocumentRoot /var/www/html/kudesare/kudesare/html

<Directory /var/www/html/kudesare/kudesare/html>
 AllowOverride all
 Require all granted
 Order allow,deny
 allow from all
 </Directory>

<Directory /var/www/html/kudesare/kudesare>
 Order allow,deny
 allow from all
 # allow from 192.168.0.192/27
 </Directory>

LogLevel warn
 ErrorLog /var/log/apache2/kudesare-error.log
 CustomLog /var/log/apache2/kudesare-access.log combined env=!dontlog

</VirtualHost>

Donde pone ServerName, es la base del dominio que debe coincidir para este Virtual Host. Esto será como tu dominio. La segunda, llamada ServerAlias, son futuros nombres que pueden servirse como el nombre base o dominio principal. Esto es útil para host tipo www.

En DocumentRoot, ponemos la ruta del proyecto que queremos ejecutar.

Lo demás es tema de permisos y de logs, que en principio deberían ir así, pero que en futura publicación lo explicaré más a fondo.

Tendremos que editar también el fichero /etc/hosts

sudo vim /etc/hosts

y añadir una línea así:

127.0.0.1 kudesare

Ahora sólo nos queda activar el Virtual Host, con este comando

sudo a2ensite kudesare.conf

Y reiniciar apache

sudo /etc/init.d/apache2 restart

Ahora al poner http://kudesare en el navegador debería cargar mi proyecto de /var/www/html/kudesare/kudesare/html

6 comentarios sobre “Crear un Virtual Host de Apache en Ubuntu

  1. ale Contestar

    En otro servidor tengo alojado mi sitio web con un nombre de dominio fundamentosdeprogramacion.mx
    tengo una maquina virtual en digitalocean y este mismo nombre del dominio que mencione anteriormente lo pongo en el serverName en el archivo de configuracion .conf la duda es que al poner al intentar ingresar con la url fundamentosdeprogramacion.mx me envia al otro servidor no al servidor virtual que tengo en digitalocean porque sera esto??

    • admin Autor del artículoContestar

      Buenas,

      Creo que para que tu dominio fundamentosdeprogramacion.mx, apunte al servidor de Digitalocean, deberías cambiar las DNS en la configuración del dominio fundamentosdeprogramacion.mx

      Un saludo.

  2. Yuri Silva Ramos Contestar

    En el ejemplo cuando abres el archivo “sudo vim /etc/apache2/sites-available/001-kudesare.conf” segun las lineas arriba el nombre no es kudesare.conf ? porque segun la linea copiada es 001-kudesare.conf saludos!!

  3. Mango Contestar

    Muy buena explicación… Aunque sería de gran ayuda también un post donde expliques cómo crear Virtual Host en Windows XAMPP o WAMP… Porque he intentado y no logro hacerlo funcionar 😛

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *