Los hosts virtuales nos ayudan a organizar el desarrollo de aplicaciones por nombres de dominios locales, dichos nombres no estarán disponibles en internet, es decir, sólo existen en nuestra maquina, esto debido a que el navegador primero consulta el archivo hosts del sistema operativo, y posteriormente, resuelve el dominio e IP en la gran red; así, es posible alojar diferentes sitios con su respectivo nombre de dominio y apuntando a una misma IP, en este caso, a localhost (127.0.0.1). Ejemplos de nombres comunes en desarrollo:

  • myapp.local
  • myapp.test
  • myapp.app

Una vez elegido el estilo, puedes crear tus host virtuales y quedarían más o menos así:

  • calculator.app
  • portfolio.app
  • landing.app

Este artículo se orienta a Debian y sus distribuciones derivadas, como Ubuntu, Mint, y demás. Se requiere que Apache en su versión 2, esté instalado en el sistema y el módulo rewrite esté habilitado. Si el módulo rewrite no está habilitado, pueden usar el siguiente comando:

sudo a2enmod rewrite

Luego, es requerido reiniciar el servidor web:

sudo service apache2 restart

Paso a paso

Para la creación de host virtuales, se necesario hacerlo con permisos de usuario root, para ello, usaremos la consola:

sudo su

Posterior, cambiamos de directorio hacia la carpeta de hosts virtuales de apache:

cd /etc/apache2/sites-available/
ls -l

El contenido de la carpeta será algo como esto:

-rw-r--r-- 1 root root 1234 jul 16 2018 000-default.conf

Ahora, copiaremos el archivo por defecto y asignaremos el nombre que tendrá el host virtual:

cp 000-default.conf app.conf

Con el editor de texto de preferencia, modificaremos el contenido:

# Gedit editor
gedit app.conf
# Sublime editor
subl app.conf
# VS Code editor
code app.conf

Al finalizar la edición, el contenido debería ser muy similar a esto:

<VirtualHost *:80>
	ServerName app.dev
	ServerAlias www.app.dev

	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/app/public

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	<Directory /var/www/app/public/>
		Require all granted
		AllowOverride All
		Options -Indexes +FollowSymLinks +MultiViews
	</Directory>
</VirtualHost>

En la carpeta app se aloja el proyecto, y public es el directorio público. Luego de guardar, habilitamos el sitio en el servidor:

a2ensite app.conf

Finalmente, registramos el virtual host en el archivo hosts:

gedit /etc/hosts

Agregamos las siguientes líneas y guardamos:

120.0.0.1    app.dev
120.0.0.1    www.app.dev

Por último, se debe reiniciar el servidor otra vez.

service apache2 restart

Esto sería todo para crear nuestros hosts virtuales.

Usos

Para el caso de Laravel es muy bueno tener un host virtual, ya que podemos hacer que el navegador se recargue cuando hagamos cambios en el proyecto; para ello, debemos agregar el nombre del dominio local en la configuración de Laravel Mix:

# webpack.mix.js
mix.js('resources/js/app.js', 'public/js')
   .sass('resources/sass/app.scss', 'public/css')
   .sourceMaps()
   .browserSync('app.dev');

Después de guardar, levantamos el servidor usando NPM:

npm run watch

Gracias por leer este artículo, y no olvides que compartir nos hace crecer.

Omar Barbosa
Computer engineer, web developer with Python, PHP and Javacript
Share

Share this article in the social networks

Location

Bucaramanga - Santader
Colombia

Social networks

About

Computer engineer, web developer with Python, PHP and Javacript .