Es habitual que en fases de formación o test sencillos se utilice la ruta de publicación por defecto en los servidores web, pero en entornos más profesionales o entornos con varias publicaciones web en un mismo servidor no es viable/mantenible/aconsejable.
Por lo tanto, hay que publicar dichos sitios de forma independiente, es lo que en Apache se denomina «VirtualHosts».
Estos virtualhosts utilizarán la url a la que el usuario quiere acceder para discriminar qué servicio web debe servir.
En esta entrada vamos a publicar un sitio llamado newsite con las siguientes premisas:
- url: newsite.example.com
- ubicación de la web: /usr/share/newsite
Abre un terminal en el servidor como root para realizar los ejercicios.
Preparamos la aplicación web
Como indicamos al principio, vamos a publicar un ejemplo, por lo tanto, en esta sección podrías preparar la aplicación web que quieres publicar en vez de nuestro ejemplo.
Creamos la ubicación de nuestra página web.
mkdir /usr/share/newsite
Subimos nuestro código. Puedes utilizar el editor de textos que más te guste, nosotros utilizamos normalmente «vi«.
vi /usr/share/newsite/index.html
Y pegamos nuestro código de ejemplo:
<HTML> <HEAD> <TITLE>hola mundo</TITLE> </HEAD> <BODY> Hola Mundo </BODY> </HTML>
Por último nos aseguramos de que Apache pueda acceder a nuestra aplicación.
chown www-data.www-data -R /usr/share/newsite/
Creación del VirtualHost en Apache
Creamos un nuevo archivo «newsite.conf» en la ruta «/etc/apache2/sites-available/«.
vi /etc/apache2/sites-available/newsite.conf
Y copiamos el siguiente contenido:
<VirtualHost *:80> ServerName newsite.example.com DocumentRoot /usr/share/newsite <Directory /usr/share/newsite> Options FollowSymLinks AllowOverride all Order Deny,Allow </Directory> </VirtualHost>
Guardamos y salimos.
Activamos el sitio nuevo
Para activar el sitio ejecutamos lo siguiente:
a2ensite newsite
Y recargamos el servicio web.
service apache2 reload
O bien reiniciamos apache2.
systemctl restart apache2
Desactivar un sitio
De la misma forma, podemos desactivar un sitio web, por mantenimiento, porque queramos retirarlo, etc.
a2dissite newsite
Y recargamos apache2 de cualquiera de las formas vistas en el apartado anterior.
Prueba tu sitio recién creado
Si quieres probar tu publicación de ejemplo, puedes modificar el archivo hosts de tu ordenador cliente para indicar la ip del servidor web.
Para ello, si estás en un cliente linux, edita /etc/hosts y añade una nueva linea indicando la IP del servidor, seguido de la url que has configurado, en el caso de esta entrada newsite.example.com.
Si estás en una máquina Windows, incluye la misma configuración de ip y nombre de servidor.
De esta manera, abre un navegador web y newsite.example.com te llevará a la publicación que acabas de hacer.