El servidor web de Apache2 es una de los servicios más populares de Internet para servir aplicaciones web, Nginx es el servidor web más usado actualmente.
Ofrece muchas posibilidades de configuración, como por ejemplo crear distintos servidores virtuales para diferentes dominios. Esto quiere decir que en una misma máquina con una instancia de Apache, es posible tener los diferentes dominios jesus.com y miriam.com sin necesidad de tener dos servidores diferentes. Esto se realiza mediante la configuración de hosts virtuales en Apache para que apunten a distintas carpetas, y es lo que vamos a aprender en este tutorial, el cual realizaré en una máquina Kali 2020.
Pasos:
Instalar Apache
sudo apt update && apt upgrade
sudo apt install apache2
Crear los directorios donde vas a estar alojadas las webs
sudo mkdir /var/www/html/jesus.com
sudo mkdir /var/www/html/miriam.com
Crear los Virtual Host
Los archivos Virtual Host contienen información específica para cada dominio. Ya existe un archivo de configuración por defecto que utilizaremos como plantilla para crear los archivos de jesus.com y miriam.com
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/jesus.com.conf
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/miriam.com.conf
La estructura de ficheros debe quedar así.
Como podéis observar, ambos apuntan al directorio /var/www/html, por lo que hay que hacer que apunten a los directorios creados anteriormente.
El archivo de configuración de jesus.com ubicado en /etc/apache2/sites-available/jesus.com.conf quedará de la siguiente manera:
<VirtualHost *:80>
ServerAdmin webadmin@dominio.com
ServerName jesus.com
ServerAlias www.jesus.com
DocumentRoot /var/www/html/jesus.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
El archivo de configuración de miriam.com ubicado en /etc/apache2/sites-available/miriam.com.conf quedará de la siguiente manera:
<VirtualHost *:80>
ServerAdmin webadmin@dominio.com
ServerName miriam.com
ServerAlias www.miriam.com
DocumentRoot /var/www/html/miriam.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Habilitar los nuevos Virtual Host
De inicio el directorio /etc/apache2/sites-enabled sólo contiene el enlace simbólico (acceso directo) 000-default.conf, una vez vayamos habilitando los sitios, se irán creando más enlaces.
sudo a2ensite jesus.com.conf
El comando anterior lo que hace es crear el fichero jesus.com.conf en el directorio /etc/apache2/sites-enabled que será un acceso directo al fichero jesus.com.conf situado en el directorio /etc/apache2/sites-available
sudo a2ensite miriam.com.conf
El comando anterior lo que hace es crear el fichero miriam.com.conf en el directorio /etc/apache2/sites-enabled que será un acceso directo al fichero miriam.com.conf situado en el directorio /etc/apache2/sites-available
El esquema de ficheros quedaría así:
Por lo tanto si listamos el directorio /etc/apache2/sites-enabled quedaría así:
Crear la web para cada usuario
Hay que crear un archivo index.html con el contenido deseado dentro de cada usuario.
Modificar los permisos a las carpetas para que sean usuario y grupo de Apache
Modificar el archivo hosts de Windows
Modificar el fichero host que es un DNS, leer el siguiente artículo para aprender más acerca del fichero hosts, https://jesusfernandeztoledo.com/modificar-archivo-hosts-de-windows/
Ver la IP que tenemos en nuestro equipo Kali
Comprobar si funciona
Si queremos deshabilitar un sitio.
Hay que poner el comando,
sudo a2dissite jesus.com.conf
Una vez en producción …
Si queremos modificar algún fichero de los Virtual Host cuando esté en producción, tras modificar el fichero nunca hacer systemctl reload apache2 puesto que si tiene errores de configuración el fichero el servidor estará caído hasta que lo restablezcamos.
Por lo tanto apache2ctl configtest