En ocaciones necesitamos alojar mas de un proyecto en un servidor web. Este problema nos lo resuelven los Virtualhost. En este post aprenderemos a configurar Virtualhost en Ubuntu Server 20.04.

De forma predeterminada Apache2 viene configurado para alojar un sitio web en la siguiente direccion: /var/www/html lo que contiene un archivo html con el siguiente contenido:

Crear directorio para virtualhost

Si lo que necesitamos es mostrar mas de un sitio web crearemos en la dirección:/var/www las carpetas de proyectos necesarias de acuerdo a los proyectos que usaremos. para nuestro caso seria la carpeta proyecto.

$ sudo mkdir /var/www/proyecto

Ahora asignamos el propietario de la carpeta con el siguiente comando:

$ sudo chown -R $USER:$USER /var/www/proyecto

Establecemos los permisos de la carpeta en el siguiente order permisos al propietario de lectura, escritura y ejecución, permisos de lectura y escritura a los grupos y terceros.

$ sudo chmod -R 755 /var/www/proyecto

Crear contenido del virtualhost

Ahora creamos un archivo index dentro del directorio con el siguiente comando:

$ sudo vi /var/www/proyecto/index.html

Presionamos «i» para insertar texto en el archivo index.html e ingresamos el siguiente contenido:

<html>
    <head>
        <title>Bienvenido a proyecto.local!</title>
    </head>
    <body>
        <h1>Felicidades! El virtualhost para proyecto.local funciona!</h1>
    </body>
</html>

Despues presiona «Esc» y a continuacion ingresa «:wq» para guardar y salir de VI.

Crear archivo de configuración para virtualhost

Ahora crearemos el archivo para el virtualhost con todas las configuraciones necesarias para que funcione correctamente. Para esto lo ideal seria agregar un archivo por cada virtualhost que se requiera en el siguiente directorio: /etc/apache2/sites-available/ Creamos el archivo con el siguiente comando:

$ sudo vi /etc/apache2/sites-available/proyecto.conf

Presionamos «i» para insertar el siguiente texto en el archivo.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName proyecto.local
    DocumentRoot /var/www/proyecto
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Despues presiona «Esc» y a continuacion ingresa «:wq» para guardar y salir de VI.

El siguiente paso es habilitar el archivo de virtualhost con la herramienta a2ensite.

$ sudo a2ensite proyecto.conf

Verificamos que no haya errores en la configuracion con el siguiente comando:

$ sudo apache2ctl configtest

Deberias de obtener un resultado como el siguiente:

Output
Syntax OK

Reiniciamos apache para que apliquen las configuraciones con el siguiente comando:

$ sudo systemctl restart apache2

Probando nuestro virtualhost

Para poder realizar pruebas de nuestro virtualhost necesitamos configurar el archivo /etc/hosts con el siguiente comando:

$ sudo vi /etc/hosts

El cual contendrá el siguiente contenido, hay que agregar al mismo la siguiente linea 127.0.0.1 proyecto.local, con la intención de reconocer y redireccionar el dominio:

127.0.0.1 localhost
127.0.1.1 server
127.0.0.1 proyecto.local

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Despues presiona «Esc» y a continuacion ingresa «:wq» para guardar y salir de VI.

Como en nuestro caso estamos dentro de un ubuntu server 20.04 el cual solo se ejecuta con consola. podemos realizar una llamada al virtualhost con el siguiente comando:

$ curl http://proyecto.local

Y deberas de ver el siguiente resultado para confirmar que todo funciona correctamente:

<html>
    <head>
        <title>Bienvenido a proyecto.local!</title>
    </head>
    <body>
        <h1>Felicidades! El virtualhost para proyecto.local funciona!</h1>
    </body>
</html>

Pruebas desde otro equipo desde la red interna.

Si lo que deseas es ver el virtualhost desde algun equipo conectado en la red interna tiene que modificar el archivo hosts de cada equipo para redireccionar a la ip de tu servidor que para nuestro caso es 192.168.1.110 quedando la linea de la siguiente forma:

192.168.1.110 proyecto.local

Este archivo se encuentra en diferentes ubicaciones de acuerdo al sistema operativo los cuales puedes ver a continuacion:

  1. LINUX: /etc/hosts
  2. Windows: C:/Windows/System32/drivers/etc
  3. MAC: /etc/hosts

Despues de configurar el archivo abre un navegador e introduce la url del dominio por ejemplo: http://proyecto.local y veras un resultado como el siguiente:

Con todos estos pasos hemos concluido con la configuración de un virtualhost en Ubuntu Server 20.04

Categorías: servidores

3 comentarios

Configurar multi PHP con apache en Ubuntu server 20.04 - jcastaneda · febrero 20, 2021 a las 7:15 pm

[…] vimos en una entrada anterior es muy fácil configurar un virtualhost para nuestro caso vamos a crear un nuevo archivo de configuración dentro del cual configuraremos […]

Configurar un Servidor DNS Bind en Ubuntu Server 20.04 - jcastaneda · febrero 23, 2021 a las 8:00 am

[…] vimos en guias anteriores crearemos un virtualhost de forma rápida con el siguiente […]

Configurar certificados ssl en Ubuntu Server 20.04 - jcastaneda · diciembre 6, 2021 a las 3:35 am

[…] virtualhost […]

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *