ICM / linux / Crear y configurar VHOSTS en Apache

Crear y configurar VHOSTS en Apache

6 junio 2020 | Elena González

¿Sabes cómo crear y configurar Vhosts (virtual hosts) del servidor Apache y del servidor que estás utilizando (Linux o Windows)? En la siguiente entrada, te damos los pasos para una correcta y precisa configuración.

Tanto en Windows como en Linux, primero de todo, deberemos modificar el archivo hosts de la máquina para relacionar localhost / nuestra IP con la dirección del vhost a crear. (127.0.0.1 host.com).

VHOSTS en Apache con Windows

Empezaremos explicando la configuración de VHOSTS en Apache con Windows, en el cual primero se deberá realizar una pequeña configuración para poder proceder, a la vez que instalar un programa para poder continuar. Dicho programa es el XAMPP, el cual trae un servidor Apache, MySQL, Filezilla, Mercury y Tomcat incluidos. En este caso, solo le daremos uso a Apache, aunque a la hora de configurar contenido propio de la máquina, tanto MySQL como Filezilla serían muy útiles.

Ahora bien, para configurar los vhosts en sí, deberemos acceder al archivo de configuración del apache, el cual vendría a ser httpd.conf. Para acceder a él es tan sencillo como clickar sobre el botón Configuración en el panel XAMPP, en la sección de Apache, y darle a la opción de Apache (httpd.config).

Ejemplo

Se abrirá el archivo donde, buscando por DocumentRoot, nos llevará a la zona para agregar los virtual hosts. Por defecto encontraremos una configuración llamada DocumentRoot C:/xampp/htdocs/ , pues es el directorio donde se almacenan los vhosts y su contenido. Es algo que se puede modificar y poner el directorio que mejor nos venga, pero en este caso lo dejaremos así. Bajo esta línea, ya podemos proceder a crear los vhost con la siguiente estructura:

<VirtualHost *:80>
DocumentRoot C:/xampp/htdocs/
ServerName localhost
</VirtualHost>

Primero el localhost, para poder realizar pruebas en local. Pero en caso de querer realizar pruebas con otro, podría ser algo así:

<VirtualHost *:80> 80 puerto donde escucha apache
ServerName nombre Del Host
DocumentRoot ubicación del proyecto
</VirtualHost>

Una vez agregado el vhost, guardamos los cambios y simplemente reiniciamos el servicio de apache desde el panel de XAMPP. De esa forma, si pusiéramos localhost en un navegador o el nombre del dominio, al estar directamente impresos en el archivo hosts, nos cargaría la página inmediatamente.

Configuración de VHOSTS con Linux

Continuando con la configuración de VHOSTS en Apache con Linux, para poder configurar vhosts en él, primero tendremos que instalarlo.

Tras un sudo apt-get update para actualizar primero todos los paquetes, escribiremos en la línea de comandas sudo apt-get install apache2 y, con ello, procederemos a crear primero los directorios de nuestros vhosts.

Por defecto, apache en Linux utiliza siempre /var/www/html, y aunque ya hemos comentado que se puede modificar, también lo dejaremos así. Tendremos que asegurarnos que los directorios tienen permisos para que, tanto el usuario como apache, puedan modificar, en este caso $USER:www-data, y con permisos 755 como mínimo. Con todo esto hecho, pasamos a configurar los vhosts.

Ejemplo

Los archivos de configuración se encuentran en /etc/apache2/sites-available. Podemos o usar de base el vhost por defecto 000-default.conf (eliminando los comentarios que lo decoran para dejarlo más limpio), o crear nuestro propio archivo, asegurándonos que termine en .conf para que funcione. Sea el caso que sea, la estructura del vhost sería algo así como:

<VirtualHost *:80> Puerto donde escucha apache y desde donde sale la página
ServerAdmin webadmin@dominio.com  (correo del administrador del dominio)
ServerName dominio.com (nombre del dominio)
        ServerAlias www.dominio.com  (alias del dominio, normalmente la www u otros)
        DocumentRoot /var/www/html/dominio.com (el directorio donde se encuentra)
        ErrorLog ${APACHE_LOG_DIR}/error.log  (el directorio para el log de error)
        CustomLog ${APACHE_LOG_DIR}/access.log combined ( el directorio para el log de acceso)
</VirtualHost>

Gracias a la modificación del archivo hosts seremos capaces de poder ver la página que acabamos de configurar. Si no, necesitaríamos darlo de alta en los DNS.