¿Qué son y cómo emplear los VirtualHost en Apache?

- Andrés Cruz

In english
¿Qué son y cómo emplear los VirtualHost en Apache?

Apache es uno de los servidores web más populares en la actualidad; al buscar en Google hostings tanto de pago como gratuitos veremos que todos ellos emplean Apache como servidor web.

Como bien debes saber, Apache está basados en módulo o componentes que son independientes y podemos configurarlos independientemente, una de estas configuraciones son los VirtualHost que permiten asignar distintos sitios web a través de dominios a una misma dirección IP.

Esta entrada veremos que son los VirtualHost y cómo emplearlos en nuestras aplicaciones web con PHP.

Los VirtualHost son una configuración muy útil al momento de desarrollar nuestras aplicaciones ya que las mismas permiten acceder fácilmente a una aplicación PHP alojada un en servidor web Apache a través de un simple dominio que configuremos en nuestra máquina o servidor.

Configurando los VirtualHost

En Linux, específicamente Fedora, debemos ingresar a la ruta:

sudo gedit /etc/httpd/conf/httpd.conf 

De nuestra carpeta en donde se encuentra alojada Apache y luego de todos los comentarios podemos ingresar algo como esto:

<VirtualHost desarrollolibre2.net>
    ServerName desarrollolibre2.net
    DocumentRoot /var/www/html/desarrollolibre
</VirtualHost>

La primera línea <VirtualHost desarrollolibre2.net> simplemente indicamos la IP (a través del dominio) del virtual host y el puerto que por defecto es el 80; también podríamos emplear una configuración como la siguiente:

<VirtualHost *:80>
    ServerName desarrollolibre2.net
    DocumentRoot /var/www/html/desarrollolibre
</VirtualHost>

El ServerName desarrollolibre2.net establece la base o raiz del dominio y con esta dirección es la que emplearemos en el navegador para accedes a nuestra aplicación.

El DocumentRoot /var/www/html/desarrollolibre establece la ubicación al directorio que en otras palabras significa el sitio a donde apunta nuestro dominio configurado con el VirtualHost.

Esto sería lo mínimo que necesitamos; existen otras directivas de configuración como ServerAdmin para especificar el correo del administrador, el alias con ServerAlias etc.

Reiniciamos los servicios de Apache con los comandos:

sudo service httpd stop sudo service httpd start

O desde la interfaz del Xampp, Wampp o cualquier otro si te encuentra en Windows:

Si intentamos ingresar al dominio anterior veremos una pantalla como la siguiente

sitio caído

¿Qué pasa con nuestro VirtualHost?

el archivo hosts tiene varias utilidades como establecer la IP del sitio para evitar pasar por el DNS, bloquear sitios etc, en nuestro caso nos interesa para indicar que el dominio en cuestión será resuelto por nuestra propia máquina; para ello debemos ir al archivo hosts de nuestra máquina, en Linux estará en:

 sudo gedit /etc/hosts

En el caso de Windows estará en:

C:WINDOWS\system32\drivers\etc\hosts

Agregamos el dominio anterior:

127.0.0.1 localhost.localdomain localhost ::1    localhost6.localdomain6 localhost6 127.0.0.1 desarrollolibre2.net

Ahora, si intentamos navegar nuevamente, veremos una pantalla como la siguiente, la cual corresponde al sitio web de DesarrolloLibre que tengo alojado en local:

sitio activo
Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.