jueves, 12 de enero de 2023

Instalando Laravel 9 con Docker ( curso Laravel 9 )



Instalación de Laravel

Laravel es un framework MVC escrito en PHP para aplicaciones web full stack. Provee de una sintáxis elegante, simple y con una muy Buena experiencia de usuario para desarrolladores. Es muy similar a Django y Ruby, a este tipo de Frameworks se les conoce como “de batrías incluidas”.

¿Qué incluye Laravel?

·        Autentificación

·        Seguridad

·        ORM, migraciones y BBDD

·        Template engine

·        Testing

·        CLI

·        Routing

·        Auth

·        Notificaciones

A demás Podemos usar larvel como el backend de nuestro Proyecto hecho en TRIAC o en BIO, REACT, VUEJS incluso en REACT NATIVE.

Para comenzar cono Laravel deberemos tener conocimientos de PHP general y del paradigma de programación POO así como de patrones de diseño como MVC.

 

INSTALACIÓN

Para instalar Laravel en la version 9 se recomienda instalar Docker Desktop, esto require virtualización, aunque también se pueden instalar los servicios por separado: PHP 8, MySQL, composer.

INSTALANDO DOCKER DESKTOP

Vamos a ver cómo instalar docker en una computadora con windows.

1 iremos al sitio de docker: https://www.docker.com/

Selecionaremos la segunda opción:


Descargaremos la versión para windows




Una vez descargado el instalador, lo ejecutamos, nos dará dos opciones,

Instalar los componentes necesarios para WSL 2 y si deseamos agregar un enlace directo en el escritorio, dejaremos ambos habilitados y diremos ok


Tardará un poco en realizar los cambios, cuando termine deberemos reiniciar la computadora.



CONFIGURACIÓN DE DOCKER

Una ver que hemos instalado Docker y que hemos reiniciado el pc, no aparece una pantalla donde aceptaremos los términos



Una vez hecho esto nos aparecerá una pantalla indicandonos que la instalacion de WLS 2 está incompleta , debemos seguir instalando cosas, persionaremos el enlace que se nos muestra en la ventana de diálogo y se nos redirigirá a

https://learn.microsoft.com/es-mx/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

donde podremos descargar el paquete de actualización (paso 4) los pasos anteriores ya los hemos realizado, persionaremos en el enlace de paquete de actualización del kernel de linux WLS 2 para máquinas 64


Nos descargará el paquete




Lo ejecutamos.


y es la típica instalación next.

Una vez instalado pasamos al paso 5 de la instalación

Paso 5: Definición de WSL 2 como versión predeterminada

Abra PowerShell y ejecute este comando para establecer WSL 2 como versión predeterminada al instalar una nueva distribución de Linux:

PowerShellCopiar

wsl --set-default-version 2

 

copiaremos el comando  y abriremos una terminal PwerShell y lo pegaremos:


Lo ejecutamos y nos debe indicar que la operación se completó correctamente:


El siguiente paso es instalar una distro de Linux

Para ello ejecutaremos en la powershel el comando

  wsl –list --online


Instalaremos la distribución ubunt con el comando

  wsl –install --d Ubuntu


Esto iniciará la instalación de Ubunto en la computadora

Cuando termine la instalación nos aparecerá una ventana solicitándonos que introduzcamos un user y no podrá ser root, así que debes poner un nombre de suario que recuerdes, por ejemplo yo pondré:

Username: tu_usuario

Pass: tu_password

Después se nos solicitará la contraseña y listo:


De esta forma ya lo tenemos configurado, podemos apretar el reestart en el mensaje de error que nos salia al principio, esto hará que Docker desktop se reinicie y listo ta tenemos Docker instalado


6 CREANDO LA APP

Solución a Docker is not running

https://www.youtube.com/watch?v=2ezNqqaSjq8

 

Una vez que ya tenemos Docker desktop instalado es el momento de crear nuestra primera aplicación de Laravel.

Para ello podemos ver que en la documentación de laravel, nos indica que tenemos que abrir una sesión de WSL

Abriendo sesión WSL con la terminal powershell

Abrimos nuestro powershell y escribimos el comando wsl, esto nos abrirá una terminal con la distro Ubuntu que hemos instalado previamente:


Esta terminal WSL es un espejo de lo que tenemos en nuestra computadora, por ejemplo, si listamos veremos los mismos programas que tenemos en Windows, solo que estamos accediendo desde una terminal Linux:


Vamos a crear nuestro primer proyecto por ejemplo en el escritorio, así que con el comando

1.   Abrir powershell

2.   wsl

3.   cd Desktop/

Asegúrate de que has arrancado Docker

Nos situaremos en el desktop y para crear un nuevo proyecto simplemente usaremos el comando

curl -s https://laravel.build/example-app | bash

Donde example-app será el nombre de nuestro proyecto

Ver documentación

https://laravel.com/docs/9.x#getting-started-on-windows

Nosotros crearemos el primer proyecto con el nombre devstagram:


Y daremos un enter y nos creará la aplicación las primeras veces le costará bastante ya que debe descargar un montón de paquetes. Antes de terminar de crear la app, nos pedirá el pass de Ubuntu:  y finalizará:


Una vez creada la app podremos ver la carpeta en el escritorio

Podemos ver el mensaje , hacemos cd devstagram para meternos en ella y si hacemos ls podremos ver el contenido de ella, también podemos abrila en VScode




Ojo para crear la carpeta del proyecto en el escritorio y no la distro,

  1. 1.   Abrir powershell
  2. 2.   wsl
  3. 3.   cd Desktop/
  4. 4.   cd devstagram

ARRANCAR EL PROYECTO

Ahora ejecutamos el comando:

./vendor/bin/sail up

Esto lo que va a hacer es arrancar todos los servicios de Laravel en Docker incluyendo MySQL, el servidor etc, hay que darle tiempo para que termine de crear esos servicios:


Si te da el mensaje Docker is not runnig recuerda activar la activación de Ubuntu


Al cabo de un rato en Docker desktop me van a aparecer los contenedores creados para mi app:

En la consola veremos que cuando termine nos informa de que el servidor está corriendo en el local host puerto 80


Si ponemos esa dirección tal vez no funcione, pero si ponemos localhost si, y podremos ver Laravel corriendo en nuestro servidor local


Cuando la terminal nos está levantando los servicios, si volvemos arriba a la terminar, podremos ver que Docker nos crea una instancia de MySQL:


Si no sindica que el puerto está ocupado, puede ser debido a que tengamos instalado MySQL localmente, para comprobarlo en un entorno Windows iremos a servicios, buscaremos MySQL y lo detendremos si está activo


Porque Docker se va a encargar de crear incluso la instancia MySQL, lo que haremos será detenerlo y volverlo a ejecutar. En el caso de que tengamos algun servidor local que corra también el puerto 80 como por ejemplo apache, es probable que apunte primero ahí, asi que busca apache también en servicios y detenlo.

LEVANTAR Y DETENER EL SERVIVIO LARAVEL

Detener los servicios

Una vez que hayamos terminado de trabajar en nuetro VScode y queramos detener los servicios de Larave.

Deberemos abrir powerShell entrar en la carpeta del proyecto:

 

wsl
cd Desktop/
cd devstagram
.vendor/bin/sail down

Al hacer esto detendremos los servicios y si abrimos Docker veremos que ya no hay ninguna app corriendo:



Cuando queramos volver a trabajar en nuestro proyecto, deberemos abrir de nuevo PoweShell y arranxcar los servicios de nuevo, asegurándonos de que Docker desktop está arrancado

 

Volver a levantar los servicios

wsl
cd Desktop/
cd devstagram
.vendor/bin/sail up



Y de nuevo docker nos volverá a levantar todos los servicios, volveremos a ver la app corriendo en el docjer desktop y si vamos al localhost volveremos aver la pantalla de inicio de Laravel


Esta es la forma correcta de levantar y detener los servicios de Docker y Larave, al empezar y al terminar de trabajar en nuestro proyecto. Pero esta forma de hacerlo escribiendo

Levantar servicios

wsl

cd Desktop/

cd devstagram

.vendor/bin/sail up

Detener servicios

wsl
cd Desktop/
cd devstagram
.vendor/bin/sail down

Puede resultar algo tediosa,  para facilitarnos esta tarea de levantar y detener los servicios podemos rear un Alias, que es lo que veremos en el próximo capítulo.

CREANDO UN ALIAS PARA SAIL ( LEVANTAR Y DETENER SERCICIOS )

En el capítulo anterior vimos como detener y arrancar los servicios de Docker por medio de la PowerShell y Sail que es la herramienta que nos permite interactuar con Docker directamente sin tener conocimientos de Docker, es una excelente herramienta.

Vamosa a simplificar esos comandos .vendor/bin/ sail uo-down,  agregando un alias, para ello deberemos elevar privilegios con sudo. Y crearemos un archivo con el editor nano para editar un archivo especial conocido como bashrc, necesitaremos poner el símbolo virgulilla, esto en la consola lo consegimos con la combinación de teclas ALT 126, Por tanto teniendo los servicios de Docker detenidos iremos a nuestra PowerShell a la que me referiré como PS de ahora en adelante y estando dentro de la carpeta de nuestro proyecto devstagram haremos:


Y presionamos enter, nos pedirá el password (docker23) y nos aparecerá el archivo que buscamos.

Con este archivo hay que tener mucho cuidado, podemos navegar por el por el con la flechas, lo que vamos a hacer es ir hacia abajo con la flecha down hasta abajo del todo y encontraremos


Teniendo el curso abajo del todo,daremos enter para dar un salto de línea y escribiremos nuestro alias:

alias sail=”./vendor/bin/sail”



Una vez creado nuestro alias para salvar los cambios teclearemos los comandos:

Ctrl + O
enter
y Ctrl + X

ACABAMOS DE MODIFICAR ESTE ARCHIVO CRÍTICO bashrc  y se nos devuelve al prompt de la ocnsola, aquí para indicarle al sistema que refresque esos cambios y los tenga en cuenta, deberemos lanzar el siguiente comando:


Una vez hecho esto si escribimos el comando alias, veremos todos los alias de los que disponemos incluyendo el que acabamos de crear nostros para evitar estar escribiendo todo el rato ./vendo/bin/sail up-down a la hora de levantar o cerrar servicios:



Por tanto, ahora para levantar y cerrar servicios, solo tendremos que escribir

sail up
sail down

veamos si es cierto que funciona, nos situamos en nuestra carpeta del proyecto y arrancamos servicios


Y vemos que nos arranca los servicios, y si hacemos sail down (también nos valdría Ctrl+c) nos los para.


No hay comentarios:

Publicar un comentario