homestead-web

Laravel nos ha proporcionado todo lo necesario para poder hacer proyectos en PHP desde proyectos pequeños hasta apps bastante grandes de una manera fácil, intuitiva y muy limpia, sin embargo en ocasiones puede resultar un tanto engorroso hacer toda la instalación y configuración en nuestras computadoras, ya que debemos descargar e instalar desde el mismo lenguaje de PHP, un servidor web, un gestor de bases de datos, Composer, etc. Afortunadamente Taylor Otwell, el creador de Laravel, ha pensado en todos nosotros y ha puesto a nuestra disposición Homestead, una máquina virtual que tiene pre-instalado todo lo necesario para empezar a trabajar con Laravel. El día de hoy veremos cómo podemos hacer la instalación de esta magnifica herramienta en un sistema Mac y Linux.

Hay una nueva versión disponible de este video tutorial: Instalación y configuración de Laravel Homestead

Prerequisitos

Lo primero que debemos tener en nuestros equipos son nuestras llaves SSH, las cuales, si no las tenemos podemos generarlas con el siguiente comando.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Virtualbox

Antes de empezar a instalar Homestead debemos cumplir con un par de pre-requisitos, los cuales son bastante sencillos, el proceso de instalación podrá variar un poco si estás trabajando en sistemas Linux pero aún así es bastante sencillo, lo primero que necesitamos instalar es una herramienta que nos permita crear máquinas virtuales, VirtualBox es la opción más común ya que es ligera y fácil de usar, para instalarla nos dirigimos a https://www.virtualbox.org y descargamos el instalador y lo corremos en nuestro equipo, en la documentación oficial de VirtualBox viene la manera de hacer la instalación en sistemas Linux dependiendo de la distribución que se esté utilizando.

Tengan en cuenta que para poder utilizar máquinas virtuales en sus computadoras es muy probable que deban habilitar la virtualización por hardware (VT-x) en sus equipos, lo cual normalmente deben hacerlo desde el BIOS.

Vagrant

Otro de los requisitos que debemos cumplir para poder utilizar Homestead es hacer la instalación de Vagrant, esto nos permitirá gestionar y provisionar nuestras máquinas virtuales de manera que pudieramos simular un entorno de producción real, con esto podremos conectarnos a nuestra máquina virtual por SSH, crear virtualhosts, y hacer uso de nuestra máquina virtual sin la necesidad de tener una ventana abierta de VirtualBox en nuestros equipos. Para instalar esta herramienta debemos ir a su página oficial https://www.vagrantup.com, descargar el instalador y ejecutarlo en nuestros equipos dependiendo del sistema operativo que estemos usando.

Instalación

Lo primero que debemos hacer es descargar el box de Homestead, esto es una imagen base de nuestra máquina virtual, para hacerlo debemos ir a la terminal y ejecutar el siguiente código.

vagrant box add laravel/homestead

Esto podrá tomar algunos minutos dependiendo de la velocidad de conexión que tengan.

Una vez que tengamos el box en nuestro equipo debemos descargar el repositorio de Homestead desde GitHub, esto lo hacemos tecleando en la terminal lo siguiente.

cd ~
git clone https://github.com/laravel/homestead.git Homestead

Esto nos va a generar una carpeta en el home de nuestro usuario llamada Homestead, dentro de ella tendremos el script necesario para inicializar nuestra instancia de Homestead, pero antes de ejecutarlo debemos utilizar una versión estable. Pueden encontrar la versión estable más reciente en la Página de Releases en Github:

cd Homestead

# Utilizar la versión deseada...
git checkout v4.0.5

Luego de eso inicializamos homestead con el siguiente comando:

bash init.sh

Configuración

Para poder configurar Homestead debemos editar el archivo de configuración de Homestad, el cual se encuentra en la carpeta oculta ~/.homestead, para editarlo debemos ir a la terminal y utilizar el siguiente comando.

nano ~/.homestead/Homestead.yaml

En este archivo es donde debemos especificar todo lo relacionado a nuestra máquina virtual, y ya que estamos utilizando VirtualBox, tendremos que ponerlo en la seccion provider.

Luego debemos especificar un directorio que se va a sincronizar entre nuestra máquina local y la máquina virtual, en este ejemplo creamos una carpeta llamada code en el home de nuestro usuario, por lo tanto en la sección de folders debemos indicar esta carpeta tanto en la sección map (que indica la ruta de mi carpeta local) como en la sección to (que indica la ruta en mi máquina virtual).

folders:
    - map: ~/code
      to: /home/vagrant/code

Después debemos configurar los sitios, esto se refiere a que vamos a mapear un «dominio» para que apunte a la IP de nuestra máquina virtual, esto lo hacemos en la sección de sites, aquí también debemos fijarnos de poner bien la ruta de dónde estará nuestro sitio.

sites:
    - map: homestead.app
      to: /home/vagrant/code/Laravel/public

Por último debemos crear nuestros hosts, esto lo hacemos modificando un archivo de nuestro sistema operativo, el cual se encuentra en la ruta /etc/hosts, esto es muy posible que deban editarlo haciendo uso del prefijo sudo ya que al ser propio del sistema operativo, necesita autorización para ser modificado, por lo que debemos teclear en la conosola sudo nano /etc/hosts y debemos añadir la siguiente línea al final del documento.

# Esta es la IP que tenemos en nuestro archivo Homestead.yaml
192.168.10.10  homestead.app

Iniciar Homestead

Para poder iniciar Homestead y empezar a trabajar con nuestra máquina virtual debemos dirigirnos a la carpeta donde descargamos el repositorio de Homestead y teclear el comando correspondiente para iniciar nuestra máquina virtual.

cd ~/Homestead
vagrant up

La primera vez que ejecutemos este comando podrá tardar un poco de tiempo ya que está creando toda nuestra máquina virtual y configurándola con los parámetros establecidos en nuestro archivo de configuración. Una vez que haya finalizado, lo último que nos faltará es crear nuestro proyecto de Laravel, esto lo hacemos dirigiendonos a nuestra carpeta code (que es la que está sincronizada con nuestra máquina virtual) y creamos nuestro proyecto.

cd ~/code
composer create-project laravel/laravel Laravel

# O si tenemos el instalador de Laravel
laravel new Laravel

Detener Homestead

Para poder apagar nuestra máquina virtual y dejar de utilizar Homestead debemos hacer un paso similar al anterior sólo que el comando varía un poco.

cd ~/Homestead
vagrant halt

Continua aprendiendo

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.