Skip to content

Instantly share code, notes, and snippets.

@juanlopezdev
Last active January 25, 2018 04:01
Show Gist options
  • Select an option

  • Save juanlopezdev/fdfc9b529c5e800f550adb71ea1c4144 to your computer and use it in GitHub Desktop.

Select an option

Save juanlopezdev/fdfc9b529c5e800f550adb71ea1c4144 to your computer and use it in GitHub Desktop.
[Instalar Homestead] Instalacion de entorno virtual Homestead #tutoriales #laravel

Homestead

Prerequisito

Generar llaves SSH, si no las tenemos podemos generarlas con el siguiente comando:

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

Nota: Si se realiza en Window, instalar el gitbash para ejecutar el comando

Instalación

Descargar Vagrant desde https://www.vagrantup.com/downloads.html

Descargar el box de Homestead

vagrant box add laravel/homestead

Puede instalar Homestead simplemente clonando el repositorio. La carpeta Homestead servirá como anfitrión de todos sus proyectos Laravel:

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

Debe revisar que la rama maestra sea una versión estable. Puede encontrar la última versión estable en la página de GitHub

cd Homestead

// Clonar
git checkout v5.0.1

Ejecute el siguiente comando para crear un archivo de configuración Homestead.yaml.El archivo Homestead.yaml se colocará en el directorio Homestead

// Mac / Linux...
bash init.sh

// Windows...
init.bat

Configuración del Homestead

Editar el la configuración en Homestead.yaml

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

# Especifica que directorio que se va a sincronizar entre 
# nuestra máquina local y la máquina virtual

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

# Configurar los sitios, esto se refiere a que vamos a mapear un “dominio” 
# para que apunte a la IP de nuestra máquina virtual

sites:
    - map: local.lab.lumen
      to: /home/vagrant/Code/lab/lumen/public

databases:
    - homestead

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar

# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp

Editar el archivo hosts

# Esta es la IP que tenemos en nuestro archivo Homestead.yaml
192.168.10.10  local.lab.lumen

Nota: En Mac y Linux, este archivo se encuentra en /etc/hosts. En Windows, se encuentra en C:\ Windows\System32\drivers\etc\hosts.

Iniciar Homestead

Debemos ejecutar la siguiente linea para iniciar la maquina virtual

cd ~/Homestead
vagrant up

Luego ingresamos al navegador con la url de Homestead.yaml en este caso por ejemplo http://local.lab.lumen

Conexión a base de datos

Una forma para conectarse a la base de datos es instalando MySQLWorkbench en nuestra computadora y añadimos una conexión con los siguientes datos:

  • Hostname: 192.168.10.10
  • Username: homestead
  • Password: secret

Comandos básicos

Entrar a la carpeta Homestead y puedes ejecutar lo siguiente:

cd ~/Homestead
# Levantar la maquina virtual
vagrant up

# Actualizar la maquina si es que hay cambios
vagrant provision

# Apagar maquina virtual
vagrant halt

# Conectarme al SSH de la maquina virtual
vagrant ssh

Soluciones y errores

Vagrant up responde un error

El primer error que pude tener al instalar Homestead en Mac fue que al ejecutar el vagrant up no funcionaba, salia un error de limite de tiempo de conexión, este error se soluciono de la siguiente manera:

Entre al virtual box, seleccione la maquina virtual homestead, luego a configuracion, luego a red, luego a mostrar opciones avanzadas y le di click a cable conectado

Link de referencia: http://stackoverflow.com/questions/23293071/timed-out-while-waiting-for-the-machine-to-boot-when-vagrant-up

Mi url no carga, sale como si el domino no existiera

El segundo problema es que luego de levantar correctamente el vagrant, al ingresar la url en el navegador, este no lo encontraba. Se solucionó ejecutando lo siguiente:

cd ~/Homestead
vagrant provision

Referencias

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment