Utilizar Homestead para desarrollar con Laravel

Homestead en una máquina virtual desarrollada por el equipo de Laravel para programar en PHP y su framework.
Tiene todo lo necesario comenzar a trabajar con Laravel. Viene con PHP 7.*, MySQL, Postgres, Composer, Node y Ningx. La máquina utiliza Vagrant, que permite su configuración fácilmente. Es muy fácil la utilización de carpetas compartidas entre el servidor y el sistema operativo que utilizamos.

La idea es mantener una configuración similar a un servidor en la máquina virtual que correo bajo Virtualbox o VMWare, como si fuera el servidor de producción. La máquina virtual corre un Linux Ubuntu.

La carpeta compartida, estará en nuestro directorio personal (home) y allí podemos levantar todo el arsenal de escritorio para desarrollar, como el ide PHPStorm o Sublime Text, el navegador y herramientas de diseño HTML y CSS.

Sin lugar a dudas es un entorno perfecto de desarrollo para Laravel.

Personalmente, he utilizado Homestead para desarrollar también en ruby y python. Hablo de Rails y Django. Ya que configuro la máquina a mi gusto instalando Ruby o los componentes de Python necesarios.
Quizás es por que me he acostumbrado a utilizar Homestead. Pero pueden buscar la máquina virtual más adecuado para sus proyectos en Vagrant, en cuyos repositorios hay una gran variedad de sabores linux y configuraciones.

La idea es dejar de utilizar XAMPP o MAMPP.

Requisitos

En nuestro equipo debemos tener instalado Virtualbox, o VMWare.
En mi caso utilizo Virtualbox. Descargen el instalador para su plataforma ya sea Linux, MacOs o Windows.

La instalación es muy fácil. Solo sigan las instrucciones.

Luego hay que instalar Vagrant. De nuevo descargan la versión para su sistema operativo. Igualmente es muy fácil.

Una vez instalado Vagrant, si vamos a la consola, podemos escribir el siguiente comando:

$ vagrant

Veremos la lista de opciones que tenemos. Ya esta todo listo para instalar Homestead.

Instalar Homestead

Para instalarlo nos valemos de Vagrant y ejecutamos desde consola:

$ vagrant box add laravel/homestead

Esto descargará toda la máquina virtual, que es un linux. Así que demorará algunos minutos dependiendo de vuestra conexión de Internet.

Ahora debemos bajar o clonar los archivos de configuración y las utilidades necesarias desde el proyecto homestead de Git.

Esto lo puede pueden descargar donde ustedes crean conveniente. Yo prefiero hacerlo en mi carpeta personal en Linux o MacOS o en el directorio de usuario si utilizas Windows.

Ejecutamos:

$ git clone https://github.com/laravel/homestead.git Homestead

Donde “Hometead”, de la última parte del comando, es el directorio donde se descargará los archivos de configuración. Pueden elegir el directorio que deseen: “homestead” o “server”, el que prefieran. Yo recomiendo que sea en su directorio personal.

Nota: Para los usuarios de Windows es mejor instalar Git con la consola de linea de comando Bash. Pueden descargarlo desde la página oficial de Git. La instalación es muy facil. Esto le instalara en su escritorio, y menú, un acceso directo a una consola con los comandos de Bash que apunta a su directorio de usuario.

Ingresamos al directorio donde clonamos el repositorio, y vemos que tenemos un archivo “Homestead.yaml” y la carpeta scripts.

El archivo yaml, es donde configuraremos nuestra maquina virtual.

Configurando la máquina virutal

Con nuestro editor preferido abrimos el archivo Homestead.yaml y observamos lo siguiente:

  • ip: “192.168.10.10”, es nuestra ip de nuestra máquina virtual
  • memory: 2048, es la cantidad de memoria que le asignamos a la máquina virtual. Pueden bajarla a 1024 si tienen poca memoria, funciona perfecto.
  • cpus: 1, es la cantidad de núcleos de cpu que le asignamos. Para desarrollo 1 cpu es suficiente.
  • authorize y keys, son necesarias para acceder a la máquina virtual mediante ssh

Bien. Las siguientes claves son las mas importantes para configurar el entorno

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

La clave map dice donde estará los archivos en nuestra máquina de escritorio (Linux, Windows o MacOs).
Es este ejemplo se guardará en nuestra carpeta personal (en Linux o Mac) o en nuestra carpeta de usuario en Windows.
En conjunción, la clave to, le dice a Vagrant que sincronice con el directorio dentro de nuestra máquina virutal en “/home/vagrant/Code”.

Con esta configuración podemos hacer desde el directorio Code, distintos subdirectorios para cada uno de nuestros proyectos:

~Code
Proyecto1
Proyecto2
....
ProyectoN

Configurando los host virtuales de Nginx

Como cada proyecto de tener su propio dominio, Vagrant nos permite asignarles un nombre de dominio ficticio a cada proyecto que deseamos.
Recordemos que cada proyecto vive en un directorio particular dentro del directorio Code. Así:

sites:
- map: proyecto1.local
to: /home/vagrant/Code/Proyecto1/public
- map: proyecto2.local
to: /home/vagrant/Code/Proyecto2/public

Es importante recordar que Laravel viene configurado para que la carpeta que sirva nuestro servidor HTTP sea la carpeta public de nuestro proyecto. Esto es por medidas de seguridad.

Configurando nuestro archivo hosts

Hemos puesto que los dominios proyecto1.local y proyecto2.local residan a la dirección IP 192.168.10.10 de nuestro servidor Nginx de la máquina virtual.
Como no existen en ningún DNS, debemos incluir entrada en nuestro archivo **hosts*. El mismo reside en diferentes directorios según nuestro sistem operativo:

  • Linux : /etc/hosts
  • MacOs : /private/etc/hosts
  • Windows : C:\Windows\System32>cd \Windows\System32\drivers\etc\hosts

Simplemente con tu editor favorito lo abres y agrega lo siguiente

192.168.10.10 proyecto1.local
192.168.10.10 proyecto2.local

Grabas. Y así de simple le decimos a nuestra máquina donde debe ir para los nuevos dominios que creamos. El archivo hosts tiene prevalensencia sobre cualquier información de los DNS, si quieres puedes redirigir twitter.com a una IP cualquiera.

Sobre las claves SSH

Si ya han están utilizado Git seguramente ya tienen generadas la claves. Sino deberían seguir los siguientes pasos.

Generen la clave desde la línea de comando

$ ssh-keygen -t rsa -C "[email protected]"

Reemplacen su correo electrónico.

Arrancando Vagrant

Nos dirigimos al directorio “Homestead”, donde se encuentra nuestro configuración en el archivo de extension yaml y ejecutamos:

$ vagrant up

Esto arrancará la maquina virutal.
Usted verá que tarda un poco más la primera vez. Ya que configura todos los aspectos que le dijimos, este procedimiento es aprovisionamiento.

Accediento a la máquina virutal

Utilizando el comando:

$ vagrant ssh

después de que se ejecute usted estará adentro de la máquina linux.

Conclusiones

Una vez dentro de la máquina recuerde que puede ejecutar composer o cualquier comando linux, como así también instalar nuevos paquete.
Veraz que tienes todo lo necesario para desarrollar con Laravel. Necesitarás arrancar la máquina virtual con vagrant up, abrir una consola y logearte a la máquina con vagrant shh. Luego ejecutas los comandos php artisan que necesites o administras la base de datos con mysql. Y en tu escritorio usa tu editor o IDE favorito sobre el directorio que compartiste. Muchas veces yo he utilizada vim trabajando directamente sobre la máquina virtual. Es una cuestión de gustos. Suerte.

Una respuesta a “Utilizar Homestead para desarrollar con Laravel”

Deja un comentario