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 que Apache pueda acceder a nuestra aplicación.
chown apache.apache -R /usr/share/newsite/
Creación del VirtualHost en Apache
Creamos un nuevo archivo «newsite.conf» en la ruta «/etc/httpd/conf.d/«.
vi /etc/httpd/conf.d/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>
Para permitir rutas válidas para publicar dentro del servidor, hemos de autorizarlas en «httpd.conf», por lo tanto editamos dicho archivo.
vi /etc/httpd/conf/httpd.conf
Y añadimos para autorizar publicaciones que cuelguen de «/usr/share«:
<Directory /usr/share> AllowOverride None Require all granted </Directory>
Activamos nuestro nuevo sitio
Para ello reiniciamos nuestro servidor httpd.
systemctl restart httpd
Desactivar un sitio
Si queremos desactivar el sitio, renombramos el archivo de configuración y reiniciamos apache.
mv /etc/httpd/conf.d/newsite.conf /etc/httpd/conf.d/newsite.conf.disabled systemctl restart httpd
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.