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
Buen tutorial, funcionó perfectamente!
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??
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.
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!!
Muchas gracias!!
Toda la razón, lo cambiaré ahora.
Un saludo.
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 😛