En este tutorial, seguimos estudiando uno de los servidores web más populares y vamos a ver como podemos ver para crear múltiples dominios en apache, usando virtualhosts, tal como ya vimos en nginx hace un tiempo.
Consideración: Lo vamos a ver en Ubuntu, pero sirve para cualquier distribución, solo cambia el gestor de paquetes y en el caso de distribuciones basadas en RedHat, el servicio en vez de llamarse apache2 se llama httpd.
1- Actualizar e instalar apache
sudo apt update && sudo apt-get install apache2
2- Creamos 2 carpetas, una para cada dominio
sudo mkdir -p /var/www/html/nksistemas1.com sudo mkdir -p /var/www/html/nksistemas2.com
3- Ajustamos permisos
sudo chown -R $USER:$USER /var/www/html/nksistemas1.com sudo chown -R $USER:$USER /var/www/html/nksistemas2.com
Para este ejemplo, la variable $USER usará mi usuairo local llamado «nk1». Adicionalmente le damos 755 a la ruta por defecto de apache:
sudo chmod -R 755 /var/www/html
4- Creando los Virtual Hosts
Vamos a copiar a modo de plantilla el archivo default.conf, uno para cada dominio y o colocamos en /etc/apache2/sites-available
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/nksistemas1.com.conf sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/nksistemas2.com.conf
Te recomiendo sacarle todas las líneas comentadas al archivo para que quede más limpio.
5- Edición de los Virtual Hosts
Vamos a modificar cada archivo nuevo que creamos y especificamos la ruta correcta, básicamente lo que tocamos acá es el /var/www/html/nksistemas1 y la 2.com
En nksistemas1.com.conf:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName nksistemas1.com ServerAlias www.nksistemas1.com DocumentRoot /var/www/html/nksistemas1.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Y el de nksistemas2.com.conf colocamos:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName nksistemas2.com ServerAlias www.nksistemas2.com DocumentRoot /var/www/html/nksistemas2.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
6- Activar los Virtual Hosts
sudo a2ensite nksistemas1.com.conf sudo a2ensite nksistemas2.com.conf
Y reiniciamos el servicio de apache
systemctl restart apache2
Para distros basadas en RedHat
systemctl restart httpd
7- Verificación
Vamos a crear un simple archivo de index.html y colocamos un mensaje de bienvenida en cada directorio que creamos en /var/www/html/nksistemas1 y en el 2.
echo "Crando Virtual Hosts en NKSistemas1.com" > /var/www/html/nksistemas1.com/index.html echo "Crando Virtual Hosts en NKSistemas2.com" > /var/www/html/nksistemas2.com/index.html
Ahora abrimos un navegador y en la barra de dirección usamos la http://IP_server/nksistemas1.com y http://IP_server/nksistemas2.com