laravel-homestead-en-windows
Laravel Homestead es el box de vagrant oficial para Laravel, en sí es una herramienta de desarrollo hecha por Taylor Otwell, el creador de Laravel, la cual nos brinda un ambiente lo más cercano posible a un entorno de producción solo que en nuestra propia máquina local, esto con la finalidad de que al estar desarrollando nuestras aplicaciones podamos estar probándolo constantemente con la máquina virtual (que será como nuestro servidor) y así poder estar seguros de que cuando vayamos a hacer el deploy a producción no tengamos ningún problema.

Laravel Homestead, a grandes rasgos, es una máquina virtual con un Ubuntu Server y tiene instaladas varias herramientas out of the box, es decir, ya están pre-cargadas para no preocuparnos por instalar software que probablemente vayamos a utilizar, tales como lo son:

  • Ubuntu 14.04
  • PHP 5.6
  • HHVM
  • Nginx
  • MySQL
  • Postgres
  • Node (Con Bower, Grunt, y Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Laravel Envoy
  • Blackfire Profiler

Instalando los requerimientos básicos

Antes de empezar quiero hacer mención que en la versión de Windows 10 ha habido algunos cambios así que este tutorial servirá para equipos con windows 7, 8 y 8.1, al final del tutorial dejaré el enlace para hacer la configuración con Windows 10.

Dado que estaremos haciendo la instalación para Windows, debemos de habilitar la virtualización por hardware (VT-x), esto varía mucho debido a que esto se debe de habilitar en el BIOS, si no sabes cómo habilitar la virtualización en tu equipo primero deberás ver en la documentación del fabricante de tu motherboard (en su página de internet, foros, etc.) la manera de hacerlo ya que esto podrá ocasionar que no puedas instalar Laravel Homestead en tu computadora.

Lo siguiente que se debe tomar en cuenta y que yo en lo personal recomiendo mucho es no utilizar la consola de Windows, esto debido a que no tiene soporte nativo para la generación de llaves SSH las cuales vamos a necesitar para conectarnos a nuestro servidor virtual, en su lugar recomiendo (y en lo personal utilizo) la consola de Git.

También debemos tener instalado composer en nuestro ordenador, si no lo has hecho aquí te explicamos como instalar Composer y Laravel en Windows

Después de tener instalado composer en nuestro equipo necesitamos instalar VirtualBox o vmware para poder correr nuestra máquina virtual, para este ejercicio nosotros vamos a usar VirtualBox.

Lo siguiente que debemos de hacer es tener Vagrant instalado en nuestro equipo, esto debido a que Homestead es una box de vagrant, es decir, todo lo que necesitamos para tener nuestro entorno de desarrollo listo para empezar a trabajar con él. Una vez instalado vagrant debemos agregar el box, lo cual se hace desde la consola con el siguiente comando

vagrant box add laravel/homestead

y cuando nos pregunte que provider vamos a utilizar seleccionamos virtualbox dado que nuestra máquina virtual estará corriendo sobre él.

Por último debemos de tener un cliente SSH para poder conectarnos a nuestra máquina virtual. Dado que Windows no tiene soporte nativo para conexiones de este tipo nosotros utilizaremos PuTTY un cliente SSH muy ligero que podemos descargar desde su página web.

Instalar Homestead

Una vez que tengamos todos los requerimientos podemos empezar con la instalación de Laravel Homestead, desde nuestra consola de git tecleamos el comando

composer global require "laravel/homestead=~2.0"

con esto descargaremos todos los archivos necesarios para poder hacer uso del comando homestead, sin embargo antes de eso tenemos que agregar la ruta a nuestro PATH la cual debe estar apuntando hacia donde tenemos nuestro ejecutable de homestead.

Agregar una ruta al PATH es muy sencillo en Windows, tan solo tenemos que dar clic derecho sobre Equipo e ir a las propiedades, luego hacer clic en configuración avanzada del sistema como se muestra en esta pantalla

Información del sistema

Nota, también podemos llegar a esa ventana tecleando al mismo tiempo la tecla de Windows + Pausa

Después veremos otra ventana en la cuál debemos dar clic sobre el botón que diga variables de entorno, esto nos abrirá otra ventana en la cuál debemos buscar en las variables del sistema la opción Path y modificarla

Propiedades del sistema

homestead-windows-3

Editar variables del sistema

Una vez que demos clic en editar se abrirá una ventana nueva donde debemos indicar la ruta de nuestro composer, la cuál por defecto debe ser la siguiente:

`C:\Users\Nombre_del_usuario\AppData\Roaming\Composer\vendor\bin;`

Esto hará que una vez que instalemos Homestead podamos hacer uso de ese comando de manera global en nuestro sistema, para verificarlo vamos a abrir la consola de git (Git Bash) y tecleamos

homestead -V

con esto podemos verificar que nuestra ruta se haya configurado correctamente y podremos ver la versión de Homestead que se ha instalado en nuestro sistema, deberías ver algo como lo siguiente:

Nos muestra la versión actual de Homestead

Nos muestra la versión actual de Homestead

Nota.- No debemos olvidar que antes de todo esto ya debemos tener la box de Homestead instalada.

Ya que estamos en la consola de git, aprovechemos de una vez para generar nuestras llaves SSH si es que no lo hemos hecho con anterioridad, para esto vamos a teclear el comando

ssh-keygen -t rsa -C "direccion@correo"

indicando nuestra dirección de correo electrónico, luego nos pedirá  el nombre que queremos ponerle a nuestra llave SSH, si quieren usar el nombre por defecto solo deben presionar enter, luego podemos usar una clave para nuestras llaves, aquí es opcional si desean usar una clave o no pero es más seguro indicarle alguna, si desean usar una clave deberán escribirla dos veces como se indica, en caso contrario solo presionen enter dos veces, al final se verá algo como lo siguiente:

Llave generada correctamente

Llave generada correctamente

Ya con nuestra llave lista podemos proceder a correr el comando para iniciar Homestead, esto es importante para que se genere nuestro archivo de configuración, para esto tecleamos

homestead init

después tecleamos

homestead edit

para poder configurar nuestro entorno, al hacer esto nos aparecerá un bloc de notas con las configuraciones por default, aquí solo debemos agregar o modificar los parámetros que necesitemos, tales como agregar o quitar proyectos, incrementar o decrementar la memoria ram, indicar la ruta de nuestras llaves SSH, etc.

Para este ejemplo vamos a agregar un proyecto el cual llamaremos prueba.app, nuestro documento de configuración deberá verse como se ve a continuación:

Parámetros de nuestro entorno

Parámetros de nuestro entorno

Presten especial atención al área marcada, la sección de folders nos indica el mapa que se va a tomar como relación en nuestra máquina virtual, esto quiere decir que debemos tener una carpeta llamada Code en nuestro home de Windows, así que debemos crearla tecleando en la consola de git

mkdir ~/Code

La sección de sites nos indica cuáles son los proyectos que vamos a tener configurados en homestead, en este ejemplo tenemos dos, homestead.app y prueba.app, estos debemos de configurarlos en windows para que puedan reconocerse al momento de querer entrar al navegador, para esto debemos modificar nuestro archivo de hosts ubicado en C:\Windows\System32\drivers\etc y debe estar como se muestra a continuación:

Virtual Hosts de los proyectos

Virtual Hosts de los proyectos

Al final del archivo en cada linea agregamos la IP de nuestro homestead y el nombre que le daremos a nuestro host virtual, todo esto podemos indicarlo cuando ejecutamos el comando

homestead edit

Correr Homestead

Una vez que tengamos todo listo solo debemos teclear

homestead up

y automáticamente se empezará a cargar nuestra máquina virtual con homestead

Cargando máquina virtual

Cargando máquina virtual

Importante

Una vez que se termine de cargar la máquina virtual, lo más común es que intenten entrar a ella con el comando

homestead ssh

pero esto en windows no es así dado que puede ocasionar que la consola muestre símbolos raros y no podamos ver nada, aquí es donde entra PuTTY al rescate, al abrir PuTTY nosotros podemos acceder por SSH a nuestro servidor sin problemas, solo debemos indicarle la dirección IP de la máquina virtual y listo, nos permitirá entrar a ella, al hacerlo nos pedirá usuario y password, para ambos es `vagrant`

Conectando a Homestead

Conectando a Homestead

Una vez dentro de homestead tenemos todo el servidor de ubuntu a nuestra disposición para crear, eliminar y trabajar sobre proyectos sin restricción alguna, vamos a crear nuestro proyecto de prueba, para estro primero vamos a la carpeta que configuramos para el proyecto, la cual es /home/vagrant/Code/prueba/ así que para esto primero vamos a la carpeta Code tecleando

cd /home/vagrant/code/

una vez que estemos ahí podemos crear nuestro proyecto de la manera habitual

composer create-project laravel/laravel prueba

y una vez que se termine de descargar nuestro proyecto podemos trabajar con el de manera normal.

Por último sólo me queda decirles que para detener la máquina virtual solo deben teclear

homestead halt

en nuestra consola de git, esto apagará la máquina virtual sin afectar los proyectos en los que estemos trabajando.

Espero este tutorial sea de su agrado y más que nada que les ayude a todos aquellos que trabajan con Windows, cualquier duda que tengan estaré al pendiente para responderla a la brevedad aquí en los comentarios, en el foro o en twitter como @dimitri_acosta

Windows 10

Bien lo prometido es deuda y como se los dije al inicio del tutorial esto puede fallar (lo más seguro es que falle) en Windows 10, pero no se alarmen, ya que para hacer la instalación en Windows 10 primero debemos seguir este tutorial al pié de la letra y después pasar a hacer las correcciones necesarias como nos explica nuestro colega Daniel Lara, a continuación les dejo el enlace para que puedan hacerlo funcionar.

https://styde.net/configuracion-de-homestead-en-windows-10/

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

Lección anterior Instala phpMyAdmin en Laravel Homestead Lección siguiente Lo que debes saber antes de instalar Laravel Homestead