En el último artículo aprendimos a crear Virtual Hosts en Windows. Puedes consultar este contenido haciendo clic aquí.
En este artículo vamos a aprender a crear un Virtual Host en Linux, más específicamente en Ubuntu. Veremos que algunas configuraciones serán un poco diferentes, pero el proceso en sí será similar al que vimos en el artículo anterior. Vamos a crear los mismos proyectos del último artículo.
Proceso de creación de un Virtual Host
Trabajaremos básicamente con la Terminal y la línea de comandos. Si no tienes Apache instalado en tu máquina, podrás instalarlo con el siguiente comando:
sudo apt-get install apache2
La Terminal hará algunas preguntas durante la instalación. Puedes responder “Sí” a todas ellas.
También necesitamos instalar PHP. Haremos esto con el siguiente comando:
sudo apt-get install php7.0
Vamos a crear las carpetas y archivos de nuestros proyectos. Para ello, entraremos en la carpeta var/www y crearemos una carpeta para cada uno. Ejecutaremos los siguientes comandos:
cd /var/www
sudo mkdir restaurante
sudo mkdir restaurante/public_html
sudo mkdir noticias
sudo mkdir noticias/public_html
Explicando: hemos creado un directorio para cada proyecto y dentro de cada uno de ellos hemos creado otro directorio llamado public_html, que contendrá los archivos que serán identificados por nuestro servidor.
El siguiente paso es crear los archivos index.php en cada directorio. Comenzaremos con el proyecto del restaurante. Ejecutaremos los siguientes comandos:
cd restaurante/public_html/
sudo nano index.php
El editor Nano se abrirá para nosotros. Solo basta con pegar el mismo código desarrollado en el último artículo:
<?php
echo "<h2>¡Hola Mundo! Bienvenidos a mi Proyecto de Restaurante</h2>";
Es importante guardar este archivo antes de cerrarlo. Ahora repetiremos este mismo proceso para el proyecto noticias. Aquí están los comandos:
cd ../../noticias/public_html/
sudo nano index.php
Y por último, vamos a añadir el contenido del archivo PHP:
<?php
echo "<h2>¡Hola Mundo! Bienvenidos a mi Proyecto de Noticias</h2>";
Genial. La estructura de nuestro código está finalizada. Ahora empezaremos la configuración real de los Virtual Hosts. Primero, daremos el permiso necesario para que el usuario de nuestro servidor pueda realizar las debidas configuraciones en las carpetas de los dos proyectos. Ejecutaremos el siguiente comando:
cd ../../
sudo chown -R $USER:$USER restaurante/public_html/
sudo chown -R $USER:$USER noticias/public_html/
El siguiente permiso necesario que debemos conceder es el permiso de escritura en estos directorios. Para ello, utilizaremos los siguientes comandos:
sudo chmod -R 755 restaurante/public_html/
sudo chmod -R 755 noticias/public_html/
Después de conceder estos permisos, crearemos el archivo necesario para los Virtual Hosts. El directorio que contiene los archivos de configuración está dentro del directorio etc. Vamos a acceder a él con el siguiente comando:
cd /etc/apache2/sites-available/
Este directorio tiene un archivo llamado 000-default.conf. Contiene la estructura por defecto de un Virtual Host. Por lo tanto, copiaremos este archivo y lo pegaremos en el mismo directorio, cambiando el nombre para nuestro proyecto. Haremos este proceso primero pensando en el Restaurante. Ejecutaremos lo siguiente en la Terminal:
sudo cp 000-default.conf restaurante.conf
sudo nano restaurante.conf
Explicando: hemos creado el archivo de configuración restaurante.conf. Recordando que podemos elegir el patrón que consideremos mejor para el nombre de este archivo. Después de crear el archivo, accedemos a él con Nano. Veremos una estructura ya definida. La adaptaremos para nuestro proyecto. Al final, el contenido del archivo quedará así:
<VirtualHost *:80>
ServerName www.proyecto.restaurante.com.br
ServerAlias proyecto.restaurante.com.br
DocumentRoot /var/www/restaurante/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Explicando: ServerName y ServerAlias representan el dominio principal del proyecto y un nombre alternativo para él. DocumentRoot define la ruta para nuestro proyecto. ErrorLog y CustomLog definen los archivos donde se almacenarán los errores y excepciones.
Repetiremos el mismo proceso con el proyecto de Noticias, con los siguientes comandos:
sudo cp restaurante.conf noticias.conf
sudo nano noticias.conf
Un detalle interesante es que creamos el archivo de configuración de noticias basándonos en el archivo del restaurante, no más en el archivo predeterminado. El contenido del archivo de configuración quedará así:
<VirtualHost *:80>
ServerName www.proyecto.noticias.com.br
ServerAlias proyecto.noticias.com.br
DocumentRoot /var/www/noticias/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Estamos casi al final. Solo necesitamos habilitar estos archivos de configuración, para que Apache pueda encontrarlos. Para ello, ejecutaremos los siguientes comandos:
sudo a2ensite restaurante.conf
sudo a2ensite noticias.conf
También es necesario deshabilitar el archivo predeterminado. Por lo tanto, ejecutaremos el siguiente comando:
sudo a2dissite 000-default.conf
Necesitamos reiniciar Apache para que los cambios se reflejen. Para ello, ejecutaremos el siguiente comando:
sudo service apache2 restart
Esta es la configuración necesaria para que el Virtual Host funcione en Apache. Sin embargo, como comentamos en el artículo anterior, es necesario configurar el archivo hosts de nuestro Sistema Operativo, para que los proyectos sean encontrados en nuestro Entorno Local. En Ubuntu, el archivo de hosts está dentro del directorio etc. Vamos a acceder a este archivo con los siguientes comandos:
cd /etc
sudo nano hosts
Basta con añadir en este archivo el mismo contenido que definimos en el ambiente Windows:
127.0.0.1 www.proyecto.restaurante.com.br
127.0.0.1 www.proyecto.noticias.com.br
Configuración finalizada. Con esto podrás probar tus Virtual Hosts también en el Entorno Linux.
¿Te gustó este artículo? ¿Tienes algún otro tema que te gustaría poder leer aquí en nuestro Blog? Puedes enviar tus sugerencias haciendo clic aquí. ¡Muchas gracias por leer este artículo y hasta el próximo! :)