Laravel-Homestead

Laravel: cómo configurar Homstead en Windows y Linux

Introducción

Cuando comencé a aprender Laravel, He elegido usar Homestead, la “caja Vagrant preempaquetada que le proporciona un entorno de desarrollo maravilloso sin necesidad de instalar PHP, un servidor web, y cualquier otro software de servidor en su máquina local ".

Realmente, Ya tenía Php instalado en mi máquina, así como servidor Apache y MySql, pero pensé que habría sido una buena oportunidad para aprender algo nuevo.

Aunque el documentación oficial es bastante completo, Necesitaba más ayuda: No sabía nada de Vagrant, No usé Composer, ni ir (Yo uso mercurial).

Así que busqué en Google un poco y encontré un gran tutorial. Bien, No se si esto solo me pasa a mi, pero te puedo garantizar que a mi me pasa muy a menudo: Sigo algún "Tutorial definitivo" o alguna "Guía definitiva para…Y lo que se prometió que funcionaría falla con errores que parecen ser desconocidos para todos los demás! Es realmente frustrante, No es?

Por esta razón, Te voy a contar como he instalado, setup y finalmente se puso a trabajar en un entorno Laravel Homestead, mencionar los diferentes problemas en los que me he metido e ilustrar la solución que encontré.

darse cuenta: para algunas partes del proceso (como la instalación de algún software) Te daré los enlaces a la documentación oficial o algún artículo útil que he encontrado sin duplicar aquí ese contenido.. Pero en general, debería poder configurar todo y ejecutarlo con solo leer este artículo. O eso espero 🙂

Comencemos con Laravel Homestead.

Software requerido

Para usar Laravel Homestead, primero debe instalar algún software:

  • VirtualBox (https://www.virtualbox.org/wiki/Downloads)*: VirtualBox ejecutará la máquina virtual Homestead con todo lo que necesitamos: un sistema operativo (mientras escribo es Ubuntu 16.04), Php, varios motores de base de datos y más (para la lista completa consulte la documentación oficial: https://laravel.com/docs/5.5/homestead)
  • Compositor (https://getcomposer.org/doc/00-intro.md): utilizado para crear proyectos de laravel y administrar todas sus dependencias; la forma más fácil de poner Composer en funcionamiento en Ubuntu es simplemente sudo apt-get install composer
  • Vagabundo (https://www.vagrantup.com/downloads.html): se utiliza para ejecutar la máquina virtual Homestead sobre la marcha y acceder a su contenido directamente desde su host (Podrás usar tu aplicación web directamente desde tu navegador sin la necesidad de usar un navegador instalado en la VM., por ejemplo)
  • Git (https://git-scm.com/downloads): utilizado para generar la clave SSH utilizada por Vagrant para autenticar la conexión del servidor (en Ubuntu solo sudo apt-get install git )

*no es obligatorio usar VirtualBox: también puedes usar Hyper-V, VMWare o Parallels si se siente más cómodo.

La instalación de este software es bastante fácil e indolora. Solo asegúrese de obtener las últimas versiones de ellos. Especialmente para VirtualBox, Laravel requiere que sea versión 5.1 o mayor. Entonces, si ya tiene VirtualBox instalado, asegúrese de verificar su versión: simplemente inicie VirtualBox y el software en sí le notificará si hay una versión más reciente disponible para su sistema.

Si en cambio tiene que instalar VirtualBox desde cero, puede seguir este tutorial: https://www.pcsteps.com/184-install-virtualbox-linux-mint-ubuntu/: omita todo habla sobre los administradores de software de distribución y vaya a la sección donde el autor le enseña cómo obtener la última versión de VirtualBox para su distribución (Los usuarios de Windows solo tienen que descargar y ejecutar el instalador desde el sitio oficial).

Para el resto, puede consultar los enlaces de arriba.

Como ya he dicho, No encontré ningún problema para instalar ninguno de estos softwares, así que no dedicaré más tiempo a esto..

Comenzando con Laravel

Cuando tenga todos los softwares instalados, simplemente abra el símbolo del sistema en Windows o una ventana de terminal en Linux (de ahora en adelante lo llamaré CLI) y escriba:

caja vagabunda añadir laravel / homestead

Se le preguntará si desea usar Hyper-V, Paralelas, VirtualBox o VMWare: seleccione el entorno virtual de su elección y presione Entrar. Esto descargará la caja virtual de Homestead y probablemente llevará algún tiempo terminar, así que siéntete libre de tomar un descanso.

El siguiente paso es descargar la interfaz de línea de comandos para Homestead. Abra su CLI y navegue a la carpeta donde desea almacenar sus proyectos de Laravel en (para este artículo asumiré que será C:\Usuarios <USER_NAME>\ en Windows y solo en tu hogar ~ / en Linux) y escriba:

git clon https://github.com/laravel/homestead.git Homestead

Esto creará una carpeta llamada Homestead. Ingresemos desde CLI e iniciemos Homestead:

cd Homestead
bash init.sh

La respuesta será un entusiasta "Homestead inicializó!". Suena bien, No es? Pero, qué significa? Sencillo: significa que en su carpeta Homestead se ha creado el Homestead.yaml archivo, ¿No es fantástico?? De hecho, Homestead.yaml el archivo le permitirá configurar sus sitios y su carpeta compartida. Bueno, puede sonar oscuro esto, Lo admito, pero ten paciencia: Te prometo que es bastante simple y te lo explicaré pronto..

Una clave SSH, Por favor.

Ahora tenemos primero que crear una clave SSH para permitirnos autenticarnos en nuestro servidor en Vagrant box.

Los usuarios de Linux pueden usar su CLI estándar, Los usuarios de Windows pueden usar Git Bash (simplemente haga clic derecho en su escritorio y haga clic en Git Bash para abrirlo; es como un símbolo del sistema pero con algo mágico). Estás listo? Okay, escribe esto:

ssh-keygen -t rsa -C "yourname @ homestead"

De verdad tengo que decirte? Estoy seguro de que no, bien, solo para ser claro sobre esto: reemplace "yourname" con ... su (usuario) nombre.

Esto creará una carpeta oculta llamada ".ssh" en su directorio de inicio para los usuarios de Linux (~ /), en su carpeta personal para usuarios de Windows (C:\Usuarios <USER_NAME>) y pondrá su clave SSH en esta carpeta. Tendremos que referirnos a esto cuando configuremos nuestro Homestead.yaml archivo. Es decir, Ahora mismo!

Archivo Homestead.yaml: sección 1

Realmente, Homestead.yaml archivo nace casi perfecto. Analicemos las cosas importantes.

---

IP: "192.168.10.10"

memoria: 2048

Cpus: 1

proveedor: caja virtual

En la parte superior del archivo, verá una dirección IP: esto se utilizará para acceder a sus sitios / aplicaciones web. Tú puedes cambiarlo, si tienes una buena razón para hacerlo, pero como está funciona bien. Usaremos esta dirección IP más adelante para configurar nuestra Hospedadores archivo.

El otro entorno importante es el proveedor: ya está configurado en "virtualbox", por lo que podemos estar felices y seguir adelante 🙂

Archivo Homestead.yaml: sección 2

Luego tenemos que establecer la ruta a nuestra clave SSH y el archivo de clave en sí:

Linux

autorizar: ~/.ssh/id_rsa.pub

keys:

- ~ / .ssh / id_rsa

Windows

autorizar: C:/Users/marco/.ssh/id_rsa.pub

keys:

- C:/Usuarios / marco / .ssh / id_rsa

Archivo Homestead.yaml: sección 3

Luego encontramos la sección de carpetas. Aquí configuramos la carpeta compartida: básicamente, le decimos a nuestra máquina virtual dónde reside el código de nuestro sitio web / aplicación para que pueda ejecutarlo.

Linux

- mapa: ~/Homestead/Code

to: /inicio / vagabundo / Código

Windows

- mapa: C:/Usuarios /<USER_NAME>/Homestead/Code
to: /inicio / vagabundo / Código

Archivo Homestead.yaml: sección 4

Finalmente, tenemos que configurar nuestros sitios, decidir cuáles serán nuestros dominios y decirle a la máquina virtual dónde se puede encontrar el código relativo (podemos ignorar el resto del archivo Homestead.yaml y dejarlo como está). Imaginemos que queremos que nuestro primer dominio para nuestro primer sitio / aplicación de Laravel sea firstlaravel.app (esto será idéntico para los usuarios de Linux y Windows):

sitios:

- mapa: firstlaravel.app

to: /inicio / vagabundo / Code / firstlaravel / public

Espera un momento: qué es eso «Código» carpeta? Es la carpeta donde guardamos todos nuestros proyectos, pero tenemos que crearla. Vaya a su administrador de archivos, abra su carpeta de Homestead y cree una carpeta dándole el nombre "Código".

Ahora, abra su CLI en la carpeta "Homestead / Code" y escriba:

compositor crear-proyecto laravel / laravel firstlaravel --prefer-dist

Esto creará un nuevo proyecto de Laravel con la siguiente ruta

Linux: ~ / Homestead / Code / firstlaravel

Windows: C:\Usuarios <USER_NAME>\Homestead Code firstlaravel

3 vueltas para ir!

Sólo 3 pequeños pasos:

  1. tenemos que modificar nuestro Hospedadores archivo agregando la IP que tenemos en nuestro archivo Homestead.yaml. Los usuarios de Linux encontrarán Hospedadores archivo en el directorio / etc /, El usuario de Windows lo encontrará en C:\Windows System32 drivers etc; aquí tenemos que agregar la siguiente línea:
    192.168.10.10  firstlaravel.app

    De esta forma podremos utilizar nuestro dominio para cargar la aplicación en nuestro navegador.

  2. En nuestra CLI ahora tenemos que inicializar Vagrant; navegue a su carpeta de Homestead y escriba:
    init vagabundo

    Esto inicializará "directorio actual para ser un Vagabundo ambiente" (https://www.vagrantup.com/docs/cli/init.html)

  3. Inicie nuestra máquina virtual: permanezca en su CLI y escriba
    vagabundo

    y espere que su CLI regrese al símbolo del sistema. Ahora su máquina virtual de Homestead está en funcionamiento.

Ahora finalmente puede iniciar su navegador y simplemente escribir firstlaravel.app en la barra de direcciones y, si todo esta bien, debería ver la página de bienvenida estándar de Laravel:

firstlaravel.app

 

Algo más

Agregar otros proyectos

Tan natural, podemos esperar que creemos otros proyectos de Laravel, no sólo uno. En este caso, después de haber creado el nuevo proyecto con el comando

compositor crear-proyecto laravel / laravel firstlaravel --prefer-dist

desde tu carpeta Homestead / Code tienes que seguir estos sencillos pasos:

  1. Abierto Homestead.yaml archivo, vaya a la sección del sitio y agregue su nuevo proyecto allí; suponiendo que el nuevo proyecto se llame secondlaravel.com la nueva sección debería verse así:
    sitios:
    
    - mapa: firstlaravel.app
    
    to: /inicio / vagabundo / Code / firstlaravel / public
    
    - mapa: secondlaravel.com
    
    to: /inicio / vagabundo / Code / secondlaravel / public
  2. Abierto Hospedadores archivo y agregue la siguiente línea:
    192.168.10.10  firstlaravel.app
    192.168.10.10  secondlaravel.com
  3. Abra su CLI en su carpeta Homestead y escriba provisión vagabunda o recarga vagabundo para que sus cambios surtan efecto.

Problema 1:

Ya lo mencioné pero lo repito nuevamente aquí: si tu corres vagabundo y todo se ve bien, pero intentar navegar a su aplicación con el navegador genera un «Desconectado» error, verifique su versión de VirtualBox y, en general, asegúrese de tener instaladas las últimas versiones para cada software que esté utilizando.

Problema 2:

Tanto en Linux como en Windows, mi primer intento de acceder a mi aplicación se ha visto frustrado por la siguiente advertencia:

Errores de Homestead

Si esto te pasa incluso a ti, simplemente abra su CLI en la carpeta de su aplicación (Homestead / Code / firstlaravel) y escribe este comando:

actualización del compositor --no-scripts

Este comando podría darte algunos errores: por ejemplo, vi que fallaba si phpunit no está instalado o si falta la extensión mbstring. Simplemente instale todas las bibliotecas que faltan una vez a la vez para que se ejecute (en Windows solo usa instaladores, en el uso de Ubuntu sudo apt-get install phpunit y sudo apt-get install php7.0-mbstring ). Será molesto, Lo sé, pero esto es lo que hice para resolver el problema en mi Linux Mint y no conozco ninguna alternativa de forma 🙂 más cómoda

Problema 3:

Puede obtener una página similar a la anterior mencionando algún software faltante. Por ejemplo, en mi sistema faltaba PhpUnit y esto me impedía acceder a mi aplicación. Acabo de instalar PhpUnit con los siguientes comandos y el error desapareció. Entonces tuve que instalar PEAR y PhpUnit. Si esto te pasa, Sugiero leer este útil documento: https://phpunit.de/manual/current/en/installation.html.

Problema 4:

Si algo va mal, El mensaje de Laravel es un poco críptico:

Ups, parece que algo salió mal.

Si desea que Laravel muestre la información de depuración completa en el navegador, cambiar el nombre del archivo .env.ejemplo en la carpeta de su proyecto (firstlaravel / en nuestro ejemplo) a .Env. Luego ábralo con un editor de texto y asegúrese de que el valor de APP_ENV sea local:

APP_ENV = local

Problema 5:

Una vez que haya configurado Laravel para mostrar información de depuración, podrías entrar en este mensaje:

RuntimeException No se ha especificado ninguna clave de cifrado de la aplicación.

Si esto te pasa incluso a ti, Que no cunda el pánico: simplemente abra su CLI en el directorio de su proyecto (firstlaravel /) y escribe este comando:

php clave artesanal:generar

Advertencia: Antes de que pueda usar este comando, Uds debe cambiar el nombre del .env.ejemplo archivo a .Env de lo contrario, obtendrá este error

file_get_contents(/inicio / marco / Homestead / Code / firstlaravel / .env): Fallado
corriente abierta: El fichero o directorio no existe

Eso es todo, amigos… De Verdad?

Así es como he configurado con éxito un entorno de Homestead en Linux Mint 18.2 y ventanas 10 corriendo en mi máquina de arranque dual.

Espero sinceramente que no tengas ningún otro problema, pero si lo haces, no dude en publicar aquí un comentario: podemos mejorar este artículo 🙂 Gracias!

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *