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
¿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:
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter