development

Node.js en (WSL2) | Instalación con Windows 11

Video de Youtube
URL de Video remoto
Texto

      Aquí en drupaladicto.com nos gusta facilitar al máximo, todo lo relacionado con el desarrollo web, basándonos en Drupal, pero también en las diferentes herramientas complementarias, para que nuestro desarrollo pueda realizarse de forma optimizada, y adecuada según la necesidad de cada proyecto.

     Una de nuestras opciones preferidas, es el uso del subsistema para Windows, llamado WSL2, ya que nos permite interactuar tanto en Linux como en Windows, sin la necesidad de instalar máquinas virtuales, como por ejemplo VirtualBox, cuya configuración y espacio necesarios para ejecutarse, muchas veces, dificultan nuestras actividades, en lugar de facilitarnos la vida.

     Por esta razón, hoy aprenderemos a instalar y configurar el entorno de ejecución para JavaScript Node.js y los gestores de paquetes NVM ( Node Version Manager) y (NPM) (Node Package Manager), utilizando la distribución de Linux, Ubuntu 20.04 con WSL2 en un entorno Windows 11.

Node JS | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Seguiremos los pasos de instalación publicados en la documentación de la Página Oficial de Microsoft, que nos menciona el siguiente detalle a tomar en cuenta:

     "Además de elegir si se desea realizar la instalación en Windows o WSL, al instalar Node.js es preciso elegir más opciones. Se recomienda usar un administrador de versiones, ya que las versiones cambian con mucha rapidez. Es probable que tenga que cambiar de versión de Node.js en función de las necesidades de los distintos proyectos en los que se trabaje. El administrador de versiones de Node, más comúnmente denominado nvm, es la forma más habitual de instalar varias versiones de Node.js.

     Siempre se recomienda quitar cualquier instalación existente de Node.js o npm del sistema operativo antes de instalar un administrador de versiones, ya que los distintos tipos de instalación pueden provocar conflictos extraños y confusos."

Instalación de nvm, node.js y npm

     Paso 1 : Abrir consola e iniciar sesión con nuestro usuario NO_ROOT, si no sabes, haz clic aquí

     Paso 2 : Instala cURL (una herramienta que se usa para descargar contenido de Internet en la línea de comandos) con: 

sudo apt-get install curl

     Paso 3 : Instala nvm con: 

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

     NOTA : En el momento de redactar este artículo, NVM v0.39.0 es la versión más reciente disponible. Puedes consultar la página del proyecto de GitHub para obtener la última versión de NVM y ajustar el comando anterior para incluir la versión más reciente.

     Paso 4 : Para verificar la instalación, escribe: command -v nvm... esto debería devolver "nvm"; si recibes "No se encuentra el comando" o ninguna respuesta, cierra el terminal actual, vuelve a abrirlo e inténtalo de nuevo. Obtén más información en el repositorio de GitHub de nvm.

     Paso 5 : Enumera qué versiones de Node están instaladas actualmente (en este momento no debe haber ninguna):

nvm ls

     Paso 6 : Instale las versiones de LTS actual y estable de Node.js. En un paso posterior, aprenderá a cambiar entre las versiones activas de Node.js con un comando nvm.

  • Instale la versión LTS estable actual de Node.js (recomendada para aplicaciones de producción):
    nvm install --lts
  • Instale la versión actual de Node.js (para probar las características y mejoras de Node.js más recientes, pero con más probabilidad de presentar problemas):
    nvm install node

     Paso 7 : Enumera qué versiones de Node están instaladas: nvm ls... ahora deberías ver las dos versiones que acabas de instalar.

     Paso 8 : Comprueba que Node.js está instalado y la versión predeterminada actualmente con: node --version. Después, comprueba que también tienes npm, con: 

npm --version

     (También puedes usar which node o which npm para ver la ruta de acceso utilizada para las versiones predeterminadas).

     Paso 9 : Para cambiar la versión de Node.js que deseas usar para un proyecto, crea un directorio de proyecto mkdir NodeTest, escribe el directorio cd NodeTest y, a continuación, escribe nvm use node, para cambiar a la versión actual, o bien nvm use --lts para cambiar a la versión de LTS. También puedes usar el número específico de cualquier versión adicional que hayas instalado, como nvm use v8.2.1. (Para enumerar todas las versiones de Node.js disponibles, usa el comando: nvm ls-remote).

     Si usas NVM para instalar Node.js y NPM, no es necesario usar el comando SUDO para instalar nuevos paquetes.

LAMP Server | Instalación con WSL2 en Windows 10 (2da Parte)

Video de Youtube
URL de Video remoto
Texto

Si no ves el video, puedes refrescar el navegador, presionando (Ctrl+Shift+R | Ctrl+F5 o Shift+F5), o abrirlo directamente desde el Canal de Youtube... HAZ CLIC AQUI

Paso 5 Configuración del Virtual Host y el SSL

          Ahora que ya tenemos todos los requisitos previos a nuestra instalación de Drupal, que aprendimos en el artículo anterior Cómo Instalar LAMP usando WSL2 en Windows 10 (1era Parte), ha llegado el momento de comenzar los preparativos, para que podamos instalar en nuestro servidor local, cualquier tipo de web, en nuestro caso, desarrollada con Drupal 9, funcionando con un certificado SSL.

          Aunque en realidad, nuestro certificado será sólo para uso local, ya que no está autorizado, por ninguna de las entidades reales creadas con este propósito, nos permitirá realizar todo tipo de pruebas relacionadas con la seguridad como requisito, o por ejemplo, para el desarrollo de webs del tipo Progressive Web App (PWA), utilizando el módulo de Drupal, donde el certificado es obligatorio. 

         Existen varias herramientas y métodos con los que podríamos generar certificados SSL, una de las más conocidas es Certbot, que se puede instalar en Linux y que ofrece la posibilidad de generar certificados autofirmados, para utilizar en entornos locales, que es el tipo que vamos a emplear en esta ocasión. Pero en lugar de usarlo, he preferido utlizar Openssl, que ya viene instalado dentro de la distribución de Ubuntu que hemos seleccionado para este artículo, así que empecemos:

Cómo Instalar un Certificado SSL y activar HTTPS en Drupal 9

     1.- Ubicación de los certificados

          Como ya hemos dicho, el programa OpenSSL viene instalado en la distribución de Ubuntu 20.04, que es la que estamos utilizando. Para comprobarlo vamos a colocarnos en la carpeta donde se guardan los certificados de este programa y la utilizaremos como ubicación para los nuestros también. 

          Ejecutaremos los siguientes comandos, para ir hasta la carpeta y luego listar su contenido:

cd /etc/ssl
sudo ls

 

LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

     2.- Generar los certificados

          Ahora que tenemos decidida la ubicación para nuestro certificado, y que ya hemos decidido el nombre que vamos a registrar, como dominio para nuestra web, lo siguiente que tendremos que hacer es ejecutar el siguiente comando sustituyendo drupal9.localhost, por el nombre o dominio con el que vamos a trabajar.

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/drupal9.localhost.key -out /etc/ssl/drupal9.localhost.crt

         Explicación: 

              Este código nos generará la clave privada drupal9.localhost.key, que se utiliza para generar el certificado drupal9.localhost.crt, con una duración de un año  -days 365, y guarda dichos certificados en este caso en la ubicación que le hemos especificado, o sea dentro de /etc/ssl/.

         Una vez ejecutado el código, se mostrarán en pantalla varias preguntas que tendremos que rellenar e ir haciendo clic en aceptar, por cada respuesta que hayamos introducido:

LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

     3.- Permisos y descarga de Drupal

          Lo primero que tendremos que hacer en esta ocasión, es crear la carpeta donde se alojará nuestro Drupal 9, que instalaremos usando Composer, y que colocaremos dentro de la carpeta publica html del Apache, para ello ejecutaremos el siguiente comando:

sudo mkdir -p /var/www/html/drupal9.localhost

     A continuación, daremos los permisos necesarios a nuestro usuario de apache para que podamos realizar la instalación sin compliacaiones:

cd /var/www/html/
sudo chown -R www-data:www-data drupal9.localhost/

  Ya podremos empezar la descarga de nuestros archivos de instalación de Drupal 9 con Composer utilizando el siguiente comando y sustituyendo la última parte por el nombre de nuestra carpeta recién creada.

composer create-project drupal/recommended-project drupal9.localhost

     De inmediato debería comenzar la descarga de los archivos de instalación desde el repositorio de Drupal.

     4.- Configuración del Virtual Host

          Una vez terminada la descarga de los archivos de Drupal, tendremos que configurar el acceso para poder comenzar con la instalación usando el navegador, para ello, crearemos el archivo de configuración correspondiente.

sudo nano /etc/apache2/sites-available/drupal9.localhost.conf

     A continuación copiamos dentro el siguiente código:

<VirtualHost *:80>
                ServerName www.drupal9.localhost
                DocumentRoot /var/www/html/drupal9.localhost/web

                # Redirect http to https
                RedirectMatch 301 (.*) https://www.drupal9.localhost$1
        </VirtualHost>

        <VirtualHost _default_:443>

                # Server Info
                ServerName www.drupal9.localhost
                ServerAlias drupal9.localhost
                ServerAdmin admin@drupal9.localhost

                # Web root
                DocumentRoot /var/www/html/drupal9.localhost/web

                # Log configuration
                ErrorLog ${APACHE_LOG_DIR}/drupal9.localhost-error.log
                CustomLog ${APACHE_LOG_DIR}/drupal9.localhost-access.log combined

                #   Enable/Disable SSL for this virtual host.
                SSLEngine on

                # Self signed SSL Certificate file
                SSLCertificateFile      /etc/ssl/drupal9.localhost.crt
                SSLCertificateKeyFile /etc/ssl/drupal9.localhost.key

                <Directory "/var/www/html/drupal9.localhost/web">
                        Options FollowSymLinks
                        AllowOverride All
                        Require all granted
                </Directory>

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>

                BrowserMatch "MSIE [2-6]" \
                                nokeepalive ssl-unclean-shutdown \
                                downgrade-1.0 force-response-1.0
                # MSIE 7 and newer should be able to use keepalive
                BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

        </VirtualHost>

     Reemplace el nombre de dominio www.drupal9.localhost con el nombre de dominio de su sitio web Drupal.

     Guarda el archivo y cierra.

     Ahora comprueba si todo está correcto, ejecutando el siguiente comando:

apachectl configtest

    Si ves el mensaje "Syntax ok", entonces la configuración de Apache es correcta.

    Entonces podremos activar el Host Virtual de Drupal y reiniciar el servidor para que se ejecuten los cambios:

a2ensite drupal9.localhost
sudo service apache2 restart

LAMP Server | Instalación con WSL2 en Windows 10 (1era Parte)

Video de Youtube
URL de Video remoto
Texto

Si no ves el video, puedes refrescar el navegador, presionando (Ctrl+Shift+R | Ctrl+F5 o Shift+F5), o abrirlo directamente desde el Canal de Youtube... HAZ CLIC AQUI

      Antes de trabajar en cualquier proyecto web, deberíamos contar con un entorno completo, que incluya todo lo necesario para que nuestra aplicación funcione correctamente, además de ofrecernos un lugar estable donde podamos realizar todo tipo de pruebas y procedimientos.

     Aunque ya hemos explicado en otro artículo todo lo que necesitas saber sobre Cómo instalar Drupal 9 usando Docker en Windows 10 Home, hoy te voy a contar cómo realizar la instalación completa de un servidor Linux que incluya, además, el Apache, Mysql y PHP, con la respectiva configuración del dominio para que puedas instalar Drupal en tu servidor local.

   Cómo Instalar LAMP usando WSL2 en Windows 10

      Paso 1 Instalación y configuración de WSL2 en Windows

          Para no repetirme, puedes leer todo el proceso de instalación y configuración del WSL2 para Windows 10, en el artículo Cómo instalar Drupal 9 usando Docker en Windows 10 Home (1era Parte), y una vez hayas realizado la instalación podrás continuar con el siguiente paso.

LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

          Además, antes de continuar, te recomiendo instalar la nueva terminal de Windows 10, para que puedas realizar operaciones simultáneas usando diferentes pestañas, te cuento cómo hacerlo en este artículo Instalación y configuración de Terminal Windows

LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Ahora, antes de continuar, debe saber que puede omitir casi todos los pasos a continuación y simplemente hacer: sudo apt install lamp-server ^ phpmyadmin. Sin embargo, yo intenté hacerlo de esta forma y me dio varios errores, por lo que, en mi opinión recomiendo la opción "Larga", que además te dará control total sobre tu servidor y servicios instalados. 

      Paso 2 - crear un usuario No Root para la ejecución del código:

          El usuario root es el usuario administrativo en un entorno Linux que tiene privilegios muy amplios. Debido a su inmenso poder, no se recomienda usarlo de forma regular. 

          El siguiente paso es configurar una cuenta de usuario alternativa, con un alcance de influencia reducido para el trabajo diario. Y podremos usar el la opción SUDO, cuando necesitemos permisos especiales sin tener que cambiar de usuario.

          Con el siguiente código, voy a crear un usuario nuevo, que no será root, y que utilizaremos de aquí en adelante para el resto de la configuración.

          Como por defecto en la instalación de ubuntu hemos creado el usuario root, ejecutaremos el siguiente comando con el prefijo sudo, y una vez complementada la información del nuevo usuario, que si no quieres rellenar la info puedes presionar ENTER en cada pregunta, como he hecho para este ejemplo.

          Luego abriremos otra pestaña en la terminal de windows, si no la tienes instalada aprende cómo hacerlo en Instalación y configuración de Terminal Windows,  para no perder, de momento los accesos como root y luego continuaremos con el procedimiento:

adduser noroot_user

 

LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

          Una vez creado el nuevo usuario, abriremos la nueva pestaña en la terminal y ejecutaremos el siguiente código, que nos permitirá acceder con los datos de nuestro nuevo usuario:

su - noroot_user

 

LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Paso 3 - Otorgarle privilegios root a nuestro nuevo usuario:     

          Ahora, tenemos una nueva cuenta de usuario con privilegios de cuenta regulares. Sin embargo, es posible que a veces necesitemos realizar tareas administrativas. Para evitar tener que cerrar la sesión de nuestro usuario normal y volver a iniciarla como la cuenta root, podemos configurar lo que se conoce como "superusuario" o privilegios de root para nuestra cuenta normal. Esto permitirá a nuestro usuario normal ejecutar comandos con privilegios administrativos poniendo la palabra sudo antes de cada comando.

          Como todavía tenemos abierta la pestaña de la terminal, donde habíamos iniciado sesión como root, vamos a ejecutar desde allí el siguiente código para otorgar los nuevos privilegios a nuestro usuario noroot_user:

usermod -aG sudo noroot_user

          Una vez otorgados los permisos de root, tendremos que cerrar la otra pestaña, donde está el usuario noroot_user, para poder comenzar a utilizarlos con los permisos recién adquiridos.

LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Paso 4 - Instalación del Servidor Apache

         Para instalar apache, vamos a necesitar dos comando:

sudo apt install apache2
sudo service apache2 start

     Una vez instalado el servidor Apache, probemos que todo funciona, accediendo en el navegador a la url http://localhost. Deberíamos ver en pantalla la siguiente imagen:

 

LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Si todo es correcto, entonces podremos continuar y habilitaremos los módulos que vamos a necesitar, como el "Rewirte" o el "SSL"

sudo a2enmod rewrite
sudo a2enmod ssl

     Y a continuación, para que se efectúen los cambios en el servidor, necesitaremos reiniciarlo usando el comando:

sudo service apache2 restart

     Llegado a este punto, te recomendaría ajustar la configuración de Apache para que los permisos coincidan con su nombre de usuario. En otras palabras, cuando hagas una lista de archivos, esta configuración de nombre de usuario que ingrese en Apache será la misma que la del propietario de los archivos en su sistema de archivos Linux. De esa forma, Apache tendrá permisos para modificar los archivos y carpetas de tu sitio. Si no lo haces, es posible que elementos como Grav y WP no funcionen correctamente o no funcionen en absoluto. Así que dirígete a este archivo y haz el siguiente cambio:

sudo nano /etc/apache2/envvars
export APACHE_RUN_USER=your_user
export APACHE_RUN_GROUP=your_user

     Y a continuación, una vez hayas editado el archivo envvars, para que se efectúen los cambios en el servidor, necesitaremos reiniciarlo usando el comando:

sudo service apache2 restart

     Ahora podemos comprobar si ambos módulos han sido activados correctamente, ejecutando el siguiente comando:

apache2ctl -M | egrep 'ssl|rewrite'

     Entonces en nuestra consola, si todo está correcto, deberíamos ver el siguiente mensaje:

#Enabled
 rewrite_module (shared)
 ssl_module (shared

     Paso 5 - Instalación y configuración del Servidor de Base de datos MariaDB

          Lo primero que necesitaremos es instalar el servidor, ejecutando el siguiente comando:

sudo apt install mariadb-server mariadb-client

     Importante: No se le pedirá que cree una contraseña, pero en una instalación local está bien. Y técnicamente no es inseguro de todos modos, ya que significa que solo aquellos con privilegios de sudo pueden acceder al servidor MySQL.

     Ahora necesitamos iniciar el servidor MySQL ejecutando el siguiente comando:

sudo service mysql start

     Paso 6 - Instalación y configuración PHP

          En el caso de PHP, además de instalar la versión que vamos a utilizar, tendremos que realizar algunas modificaciones, como la activación de varias librerías, y otras modificaciones recomendadas para trabajar con Drupal, como el tiempo de ejecución o el máximo de tamaño de subida de archivos, pero vamos por partes, primero instalaremos php y activaremos algunas librerías necesarias:

sudo apt install php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl -y

          Es posible que también deba instalar módulos según los requisitos de su aplicación. Utilice el siguiente comando para buscar módulos PHP 7 disponibles en el repositorio de paquetes.

sudo apt-cache search php7*

          En nuestro caso, vamos a instalar los siguientes "módulos" de php:

sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd  php-mbstring php-curl php-xml php-pear php-bcmath

     Por últimos, vamos a realizar algunos de los cambios de configuración del PHP.ini que nos ayudarán y evitarán posibles errores una vez instalemos nuestro Drupal. Para ello, abriremos el archivo de configuración de php "php.ini" y realizaremos las modificaciones correspondientes:

sudo nano /etc/php/7.4/apache2/php.ini
  • max_execution_time = 600
  • post_max_size = 64M
  • short_open_tag
       Default Value: On
  • memory_limit = -1
  • upload_max_filesize = 100M

     Una vez actualizados los cambios en el archivo de configuración de apache, volveremos a reiniciar nuestro servidor para que se guarden dichos cambios, para ello ejecutaremos el comando:

sudo service apache2 restart

     Ahora que PHP está instalado, para probar si está funcionando, cree un archivo de prueba llamado phpinfo.php en el directorio raíz predeterminado de Apache2…. (/ var / www / html /)

sudo nano /var/www/html/phpinfo.php

     Luego, escriba el contenido a continuación y guarde el archivo.

<?php phpinfo( ); ?>

     A continuación, abra su navegador y busque el nombre de host o la dirección IP del servidor seguido de phpinfo.php

http://localhost/phpinfo.php

Debería ver la página de prueba predeterminada de PHP, como esta:

LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Una vez comprobado que todo está correcto, tendremos que borrar este archivo ya que es información que implica riesgos de seguridad, para ello ejecutaremos el siguiente comando:

rm -f /var/www/html/info.php

      Paso 7 - Instalación Interfaz Usuario para administrar MySql

          Aunque según los requerimientos de tu aplicación, puede que no te haga falta un entorno gráfico, para la administración de tus bases de datos y tablas, porque lo realizarás usando comandos de tu consola, te recomiendo instalar esta pequeña aplicación que te servirá de ayuda:

sudo apt install adminer

     Casi hemos terminado. Hay un problema para todos aquellos que cambiaron la configuración de usuario / grupo de Apache anterior. El administrador accede y escribe en su carpeta de sesiones de PHP, por lo que debe otorgarle a su usuario (el usuario que configuró en Apache) los permisos de la carpeta correspondiente a esa carpeta. Puedes realizar el cambio ejecutando el siguiente comando:

cd /var/lib/php
sudo chown -R your_user:your_user sessions

     Ahora sí, lo último que nos faltará es activar Adminer, reiniciar Apache nuevamente, por supuesto, y luego verlo. Comience con estos dos comandos:

sudo a2enconf adminer.conf
sudo service apache2 restart

     Para comprobar el Adminer funciona correctamente escribe en el navegador la url http://localhost/adminer/

     ¡Pero necesitamos un nombre de usuario para iniciar sesión ahora! Así que sigamos adelante y hagamos eso. Recuerde que todo esto es solo para desarrolladores locales, por lo que las preocupaciones de seguridad habituales relacionadas con la creación de un superusuario no se aplican realmente. Nunca hagas esto en un sitio en vivo. Siempre.

     Así que inicie MySQL así:

sudo mysql

    Luego ingrese los siguientes comandos, Primero creamos el usuario que funcionará como root, luego le daremos los permisos para que pueda hacer cualquier tarea con las bases de datos, a continuación reseteamos la tabla de permisos y por último, saldremos de servidor de base de datos:

CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON * . * TO 'user_name'@'localhost';
flush privileges;
exit

     Ahora que haz creado un superusuario, ya podrás iniciar sesión en Adminer y comenzar a trabajar con tus bases de datos y tablas.

* Usuario con permisos específicos

     Aunque tenemos un Super usuario con el cuál podremos realizar, todas las operaciones en nuestro servidor de base de datos, es muy recomendable limitar los accesos a la base de datos específica en cada proyecto. Por esta razón, a continuación vamos a crear un usuario y una base de datos específica para nuestro proyecto.

     Primero nos vamos a loguear como Super usuario y una vez dentro, ejecutaremos cada una de las líneas siguientes, en las que primero crearemos la base de datos, luego el usuario con sus datos de acceso, a continuación le daremos todos los permisos, específicos para la tabla en concreto y por último el reseteo de la tabla de permisos:

sudo mysql;
CREATE DATABASE drupaldb;
CREATE USER drupaluser@localhost IDENTIFIED BY 'drupaluser@';
GRANT ALL PRIVILEGES ON drupaldb.* to drupaluser@localhost identified by 'drupaluser@';
FLUSH PRIVILEGES;
EXIT

     Si queremos ver el listado de las bases de datos que tenemos creadas al momento, entraremos a MySql y luego ejecutamos el siguiente comando:

SHOW DATABASES;

     Para borrar una base de datos (Cuidado porque se perderá toda la información), ejecutaremos:

DROP DATABASE mi_bd_para_borrar;

     Para ver el listado de usuarios creados, ejecutaremos el siguiente comando:

SELECT User FROM mysql.user;

     Para borrar un usuario específico:

DROP USER 'usuario'@'localhost';

     Paso 8 - Configuración del Virtual Host y el SSL

          Para poder trabajar con certificados SSL, es necesario prestar atención en varios detalles previos, por eso, he preferido hacerlo en otro artículo con su video propio, que podrás leer y ver haciendo clic aqui  Ver siguiente artículo

Drupal 9 Multisitio con Lando y WSL2 en Windows 11

Video de Youtube
URL de Video remoto
Texto

Si no ves el video, puedes refrescar el navegador, presionando (Ctrl+Shift+R | Ctrl+F5 o Shift+F5), o abrirlo directamente desde el Canal de Youtube... HAZ CLIC AQUI

         Desde que conocí Lando, se abrió para mi un mundo de posibilidades, que quiero compartir con todos ustedes; ya que simplifica considerablemente la configuracion de cualquier entorno local, sin la necesidad de grandes cambios, ni correr el riesgo de perder, más tiempo del necesario, cuando queremos realizar algún traspaso de archivos, o compartir las mismas confirguraciones con el resto del equipo, ya que una vez subidos los archivos al respositorio, descargarlos y arrancar el proyecto en cualquier lugar será tan fácil como prepararnos un café en la maquina de la oficina o en la de casa, ahora que trabajamos en remoto.

     Instalar un Drupal 9 Multisitio utilizando Lando en Windows 11 

        Prerequisitos

           - Tener descargado y configurado lando en tu entorno local. (Haz clic aquí para saber cómo)

           - Tener descargados los archivos Base de Drupal para la instalación con Lando. (Sigue las instrucciones de Instalar Drupal 9 en Ubuntu 20.04 hasta el Paso 1)

     Paso 1 - Configuración del archivo lando.config

        Lando funciona con un archivo de configuración, que nos permitirá arrancar diferentes servicios para que nuestra aplicación funcione correctamente. Por defecto, en una instalación Drupal 9 normal, sólo tendríamos que ejecutar el comando lando init, y se generaría este archivo de configuración, con todo lo necesario para ejecutar lando y Drupal 9 sin problemas.

        Sin embargo, en el caso de una instalación Drupal 9 Multisitio, tendremos que crear y nuestro propio archivo de configuración para lando y modificarlo de acuerdo a nuestras necesidades; por ejemplo, las urls para nuestros sub-dominios, los datos de acceso para cada base de datos, etc.

        Aunque puedes añadir otras muchas configuraciones en un proyecto de este tipo, a continuación te daré el archivo básico, con la explicación de cada apartado importante, para que puedas arrancar varios sitios Drupal 9, con Lando.

        Colócate en la carpeta donde haz descargado los archivos Base, de Drupal, que tienes explicado en el artículo de los prerrequisitos y, a continuación, crea un archivo llamado .lando.yml con el siguiente código:

name: drupal-multi
recipe: drupal9
config:
  webroot: web
  php: '8.0'
  composer_version: '2.0.7'
  via: apache
  drush: false
  xdebug: false

proxy:
  appserver:
    - main.lndo.site
    - sitio1.lndo.site
    - sitio2.lndo.site

services:
  # The database service used for the `main` site.
  database:
    type: mariadb:10.4
    portforward: true
    creds:
      user: drupal
      password: drupal
      database: main
  sitio1:
    type: mariadb
    portforward: true
    creds:
      user: sitio1
      password: sitio1
      database: sitio1
  sitio2:
      type: mariadb
      portforward: true
      creds:
        user: sitio2
        password: sitio2
        database: sitio2

     Explicación:

         En la primera parte del archivo de configuración, además del nombre del proyecto, tenemos las principales configuraciones, relacionadas con la versión de PHP, de gestor de paquetes Composer, el tipo de servidor, que en este caso es Apache, ya que Ngnix me dio varios errores y el drush y xdebug como false, pero podrás ejecutar comandos tanto de composer como de drush, usando la estructura que te contaré más adelante, ya que se trata de una instalación Drupal 9 Multisitio.

name: drupal-multi
recipe: drupal9
config:
  webroot: web
  php: '8.0'
  composer_version: '2.0.7'
  via: apache
  drush: false
  xdebug: false

     En la sección de Proxy, es donde definiremos los diferentes dominios para nuestos sitios Drupal, todos deberán terminar en " .lando.site" y el nombre principal deberá corresponder con su respectiva carpeta de instalación, tal y como sucede en una instalación Drupal 9 Multisitio tradicional. 

proxy:
  appserver:
    - main.lndo.site
    - sitio1.lndo.site
    - sitio2.lndo.site

     La última parte del archivo de configuración, es en la que definiremos todos los datos relacionados con nuestras bases de datos, recuerda que puedes confirmar toda la información, una vez arrancado lando, usando el comando de información:

lando info

     Paso 2 - Configuración del Drupal principal y los multisitios

        Llegados a este punto, antes de arrancar nuestro proyecto de Drupal, tendremos que hacer varios ajustes:

     1.- Renombrar el archivo example.sites.php y dejarlo como sites.php, luego dentro tendremos que añadir los diferentes dominios y las carpetas a las que apuntará cada uno de ellos.

Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony

     2.- Crear las carpetas que corresponden con los nombres de los dominios que haz declarado en el archivo de configuración. el nombre de las carpeta deberá coincidir tanto con el nombre que haz puesto en el archivo de configuración de lando, como en el sites.php de la imagen anterior.

Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony

     3.- Añadir archivos de configuración en los multisitios. Toda instalación de Drupal require de al menos dos archivos para su configuración, el archivo donde estarán definidos todos los datos de acceso a su base de datos, llamado settings.php y la carpeta files, donde alojará todos los archivos, imágenes, caché, etc.
Así que tendrás que copiar el modelo del archivo default.settings.php que está dentro de la carpeta sites/default y una vez dentro de cada carpeta de tus multisitios, renombrarlo a settings.php. A continuación crearás una carpeta files, dentro de cada carpeta. 

Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony

      Arrancando los Multisitios Drupal 9

        Ya que tenemos todos los archivos necesarios, para comenzar a instalar cada uno de nuestros Multisitios de Drupal 9, deberíamos ejecutar los siguientes comandos en este orden, para evitar sorpresas:

lando start

lando composer install

lando rebuild

lando info

     Con el comando "lando start ", nos aseguraremos de que Lando arranque correctamente, utilizando la configuración que hemos definido en el archivo de configuración .lando.yml.

     El comando "lando composer install", iniciará la descarga del resto de dependencias necesarios, para que podamos instalar nuestro Drupal, ya que dentro de los archivos nos faltarán carpetas principales como Vendor.

     El comando "lando rebuild", sirve para realizar un repaso general de la aplicación, una vez descargados los archivos con Composer, al final de la ejecución el comando nos debería mostar en pantalla, las diferentes urls disponibles para cada uno de los Multisitios.

Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony

     El comando "lando info", nos servirá para confirmar los datos de acceso a las bases de datos, con sus respectivos usuarios y contraseñas. 

Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Una vez ejecutados todos los comandos anteriores, podremos comenzar con el proceso de instalación de cada uno de los multisitios, escribiendo el dominio correspondiente, que hemos definido en el archivo de cofiguración de lando y que confirmamos al ejecutar el comando "lando info".

     Recuerda, que en el caso de instalar Drupal 9 utilizando Lando, deberás cambiar el localhost del servidor de base de datos, por el que aparece en la consola.

Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony

Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony

Multisite con Drupal 9 | Configuración

Video de Youtube
URL de Video remoto
Texto

Si no ves el video, puedes refrescar el navegador, presionando (Ctrl+Shift+R | Ctrl+F5 o Shift+F5), o abrirlo directamente desde el Canal de Youtube... HAZ CLIC AQUI

     Consideraciones antes de instalar un Multisite Drupal 9

          En algunos proyectos web, se hace necesario la implementación de un sistema ágil y rápido, para que se puedan realizar actualizaciones, nuevas implementaciones o mejoras en el código, invirtiendo en ello el menor tiempo posible y sin la necesidad de un gran número de personas para dichas tareas. Por ejemplo, para un grupo de empresas, o en el caso de tener varias webs con las mismas funcionalidades, pero destinadas a distintos públicos.

        Una alternativa disponible en Drupal, es la posibilidad de usar la instalación Multisite, (Múltiples sitos compartiendo el mismo núcleo), esto signfica, que una vez realizadas las configuraciones principales, cada vez que se vaya a instalar un nuevo sito web, se requerirá de un mínimo de pasos, para obtener un resultado idéntico, o también disponer de una base de partida, para desarrollar nuevas funcionalidades específicas de ese sitio en concreto.

      Pros y Contras de una instalación Multisite Drupal 9

          Antes de optar por este tipo de instalación en un proyecto Drupal, es necesario que entiendas algunos puntos relacionados, en la mayoría de los casos, con las actualizaciones y nuevas implementaciones.

        Pros:

           - La instalación principal será la que controle todo el resto de webs, esto significa que todos los módulos y/o themes, podrán estar disponibles y activarse o no, según las necesidades individuales de cada sitio.

          - Algunas actualizaciones de módulos o themes, podrán realizarse con la ejecución de unos pocos comandos, para todos los sitios al mismo tiempo.

          - Podrás utlizar base de datos o un perfil de instalación, que sirva de base automáticamente para los nuevos sitios.

          - Ahorrarás espacio de disco, ya que todos los sitios comparten el mismo número de archivos del core de Drupal.

        - Todos los sitios comparten un dominio principal, por lo que, durante el desarrollo se utilizan subdominios de este, ej.: sitio1.midominio.com, sitio2.midominio.com; facilitando la instalación y configuración durante el desarrollo, luego cada uno podrá tener su propio Dominio independiente.

       Contras:

         - Al realizar actualizaciones del núcleo o de los módulos, deberás ejecutar comandos de borrado de Caché y Actualización para todos los sitios.

        - Si se crea e instala un módulo personalizado con errores, podría afectar al resto de sitios.

     Pasos para realizar una instalación Multisite Drupal 9

       Paso 1 - Descarga de los archivos de Drupal 9

           Antes de comenzar con el resto de configuraciones, lo primero que necesitarás hacer, al igual que con cualquier otra instalación de Drupal, será descargar los archivos correspodientes, utilizando el gestor de paquetes Composer. Aprende como instalar Drupal usando composer aquí.

       Paso 2 - Configuración de los dominios para cada sitio

          Para indicarle a Drupal, dónde deberá realizar la instalación de cada sitio, una vez descargados los archivos correspondientes, y configurado el servidor Apache, con cada uno de los dominios relacionados, puedes aprender cómo configurar dominios en Apache aquí, la única diferencia con relación a si realizáramos una instalación normal, en lugar de una multisite, es que en cada uno de los archivos de los dominios, el Document root deberá ser exactamente igual.

                # Web root
                DocumentRoot /var/www/multisite/web

 

Multisite Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

Multisite Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

        Paso 3 - Configuración del archivo sites.php de Drupal

           Tendremos que realizar algunos cambios dentro del Drupal; el primero de ellos será renombrar el archivo example.sites.php, ubicado dentro de la carpeta 'web/sites' y dejarlo como sites.php.

Multisite Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

Multisite Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

        A continuación deberíamos copiar el modelo que nos trae este archivo, para indicar en cada uno de los casos, el dominio correspondiente a cada una de las carpetas donde queremos realizar las instalaciones.

        El resultado final será algo parecido a las líneas que aprecen bajo la siguiente imagen, por cada uno de los dominios y sitios que estemos instalando. La primera parte indica el nombre del dominio y la segunda, el nombre de la carpeta a la que apuntará dicho dominio, una vez ejecutemos el instalador de Drupal.

Multisite Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony
$sites['sitio1.midominio.com'] = 'sitio1';
$sites['sitio2.midominio.com'] = 'sitio2';

Multisite Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Paso 4 - Crear y configurar Bases de datos y usuarios para cada sitio

        Como habrás imáginado, se recomienda que cada una de las instalaciones, deberá tener una base de datos individual, con su respectivo usuario administrador específico, para evitar fallos de todo tipo, que podrían repercutir en el resto de sitios, provocándonos grandes dolores de cabeza. Una vez crada la base de datos, podremos comenzar con la instalación de cualquiera de los sitios. Puedes aprender a crear usuario y bases de datos aquí 

     Paso 5 - Copia y creación de Settings.php y Files

        Existe un último paso antes de comenzar con nuestras instalaciones de Drupal Multisitio, para cada uno de ellos drupal necesitará encontrar el archivo "settings.php", donde guardará las configuraciones relacionadas con la conexión a la base de datos, archivos de configuración, temporales, privados, etc. y por otro lado la carpeta "files", donde guardará todos los archivos relacionados con imágens, css, javascript, entre otros.

        Por esta razón, antes de ejecutar el instalador para el primero de nuestros dominios, copiaremos y renombraremos el archivo default.settings.php, dejándolo como settings.php dentro de cada una de las carpetas correspondientes a cada sitio que instalaremos y, a continuación, también en cada una de ellas, crearemos una carpeta files.

Multisite Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

Multisite Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

        Paso 6 - Acceder al navegador y accionar el instalador

          De aquí en adelante, no hay nada nuevo, por cada una de las webs que quieras instalar, escribirás en el navegador el dominio correspondiente y a continuación, una vez activado el instalador de Drupal, lo único que tendrás que hacer es clic en siguiente hasta finalizar el proceso y repetir los pasos por cada uno de tus sitios.

Multisite Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

    Comandos para realizar cambios en tu Multisite Drupal 9

             Como hemos utlizado Composer para descargar todos los archivos necesarios de nuestras instalaciones, además de contar con Drush, como parte de las herramientas que podremos emplear, significa que ambas opciones estarán disponibles para cada uno de nuestros sitios, sólo habrá que tener en cuenta unos pequeños cambios en su ejecución:

            Para comprobar los módulos o el núcleo desactualizado

composer outdated drupal/*

          Para ejecutar la actualización de todos los módulos y el core

composer update drupal/*

          Para descargar módulos

composer require drupal/MIMODULO

          Para activarlo en un sitio específico

drush en drupal/MIMODULO --uri=sitio1.midominio.com

          Para borrar la caché de un sitio específico

drush cr --uri=sitio1.midominio.com

          Para actualizar la base de datos en un sitio específico

drush updb --uri=sitio1.midominio.com

Symfony 5 | Trabajando con Plantillas Twig

Video de Youtube
URL de Video remoto
Texto

Si no ves el video, puedes refrescar el navegador, presionando (Ctrl+Shift+R | Ctrl+F5 o Shift+F5), o abrirlo directamente desde el Canal de Youtube... HAZ CLIC AQUI

       En el anterior capítulo, aprendimos a generar un controlador con su respectiva página, utilizando el Bundle Make, que nos generó una serie de archivos conectados, gracias a los cuales, pudimos acceder a nuestra primera página personalizada, llamada /main, al escribir dicha url en nuestro navegador.

Curso Symfony 5 | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Si nos fijamos un poco más en detalle, podremos apreciar que esta página, nos muestra la ubicación de los dos archivos necesarios para generarla, estos son el controlador MainController.php y la plantilla Twig, llamada index.html.twig. Así que en esta ocasión vamos a conocer un poco más sobre cómo trabajar con las plantillas para mostar nuestros contenidos en Symfony.

   Documentación oficial de Twig

     Para conocer mejor el funcionamiento de las plantillas en Symfony, deberíamos visitar la documentación oficial, donde encontraremos toda clase de información relacionada, con las diferentes funcionalidades, estructuras, filtros y opciones, disponibles para nosotros, al trabajar con plantillas Twig. Te recomiendo visitarla en este enlace: 

https://twig.symfony.com/doc/3.x/

     Twig es el resultado de una evolución en la programación, basada en PHP, que te permitirá trabajar de manera más amigable, flexible y rápida, al momento de ejecutar todo tipo de operaciones o cambios en tus plantillas. 

     Con un mínimo de esfuerzo, podrás realizar todo tipo de operaciones como declaraciones de variables, arrays, loops, ordenación de elementos, entre otras.

Curso Symfony 5 | www.drupaladicto.com - Consultor especializado en drupal y symfony

   Cómo trabajar con Twig dentro de Symfony 5

     Si abrimos el archivo llamado index.html.twig, que nos aparece en nuestra página /main, veremos la siguiente estructura:

Curso Symfony 5 | www.drupaladicto.com - Consultor especializado en drupal y symfony

     En la primera línea, tenemos la declaración de una herencia, esto quiere decir, que nuestra plantilla está heredando desde la plantilla llamada base, las principales características, que son las que permitirán utilizar, por ejemplo, las etiquetas html, los css o javascript:

{% extends 'base.html.twig' %}

     Encontraremos esta plantilla base, si buscamos dentro de la carpeta llamada templates, que es justo donde se guardan por defecto, todas las plantillas generadas automáticamente.

Curso Symfony 5 | www.drupaladicto.com - Consultor especializado en drupal y symfony

   Cómo trabajar con la plantilla base.hmtl.twig

      Cuando exploramos un poco más a fondo, la estructura dentro de la plantilla base.html.twig, nos daremos cuenta de en varias partes de ella, encontraremos combinaciones de etiquetas html, con otras en un formato menos conocido:

<body>
    {% block body %}{% endblock %}
</body>

     En Twig, cuando vemos dos llaves, acompañadas de signos de porcentaje, significará que dentro se ejecuta algun proceso. En este caso, se están declarando bloques de contenido, específcamente, el bloque llamado body, correspondiente al cuerpo o parte principal de la página.

     Al igual que en otros lenguajes de programación, cuando declaramos un bloque, tendremos una "Etiqueta" de apertura y otra de cierre, es por esta razón, que vemos {% endblock %}, como parte de la estructura.

     Si abrimos nuestra plantilla generada automáticamente, entenderemos mejor, porqué parte de sus código está entre estas dos etiquetas:

{% block body %}
<style>
    .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
    .example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
</style>

<div class="example-wrapper">
    <h1>Hello {{ controller_name }}! ✅</h1>

    This friendly message is coming from:
    <ul>
        <li>Your controller at <code><a href="{{ '/app/src/Controller/MainController.php'|file_link(0) }}">src/Controller/MainController.php</a></code></li>
        <li>Your template at <code><a href="{{ '/app/templates/main/index.html.twig'|file_link(0) }}">templates/main/index.html.twig</a></code></li>
    </ul>
</div>
{% endblock %}

   Ejemplo práctico

     Primero, analicemos la estructura que utilliza Symfony, para pasarle datos desde el controlador a la plantilla:

public function index(): Response
{
    return $this->render('main/index.html.twig', [
        'controller_name' => 'MainController',
    ]);
}

     En la primera parte de la declaración, vemos que se devuelve un objeto del tipo Response utilizando el método render, donde pasamos, como primer parámetro la ubicación de la plantilla, o sea, main/index.html.twig y a continuación, un array, con los valores que se le pasarán a dicha plantilla, en este caso, el array de datos, tiene una clave llamada controller_name y un valor asignado, que es MainController.

     Para pasar el valor y poder imprimirlo dentor de la plantilla, Symfony utiliza dobles llaves, por eso, si abrimos la plantilla, podremos ver la línea donde imprime en pantalla el valor de esta variable, utilizando la siguiente estructura:

<h1>Hello {{ controller_name }}! ✅</h1>

     Hagamos entonces la siguiente comprobación, vamos a reescribir nuestra página, para ello, primero añadiremos un nuevo array, que pasaremos como parámetro desde el controlador y a continuación, utilizaremos un bucle for, para recorrerlo e imprimir todos sus valores dentro de una lista, en la plantilla. El siguiente será el aspecto del controlador con los nuevos cambios.

<?php

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class MainController extends AbstractController
{
    /**
     * @Route("/main", name="app_main")
     */
    public function index(): Response
    {
        $recommendations = [
            'one' =>  'Poner atención en los detalles',
            'two' =>  'Nunca darte por vecido',
            'tree' => 'Siempre marcarte nuevos objetivos'
        ];
        return $this->render('main/index.html.twig', [
            'recommendations' => $recommendations,
        ]);
    }
}

 

Curso Symfony 5 | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Y a continuación, tendremos la nueva estructura dentro de nuestra plantilla, en la cual hemos removido casi todo lo generado automáticamente, para dejar solamente, la declaración de herencia {% extends 'base' %} y luego los bloques title y body:

{% extends 'base.html.twig' %}

{% block title %}Nuevo controlador {% endblock %}

{% block body %}
    <ul>
        <h2>Nuestra recomendaciones</h2>

        {# Estos son los comentarios #}
        {% for recommendation in recommendations %}
        <li>{{ recommendation }}</li>
        {% endfor %}

    </ul>
{% endblock %}

     Si guardamos los cambios y volvemos a nuestro navegador y refrescamos, el aspecto de la página /main, debería ser el siguiente:

Curso Symfony 5 | www.drupaladicto.com - Consultor especializado en drupal y symfony

    Ahora que ya sabemos, que para utilizar elementos de la plantilla base.twig.html, dentro de nuestras plantillas personalizadas, lo primero es declarar la herencia, con la sentencia {% extends 'base.html.twig' %}, y a continaución podremos definir uno o varios bloques y llamarlos desde nuestra plantilla.

Symfony 5 | Instalación con Lando en WSL2 y Windows 11

Video de Youtube
URL de Video remoto
Texto

Si no ves el video, puedes refrescar el navegador, presionando (Ctrl+Shift+R | Ctrl+F5 o Shift+F5), o abrirlo directamente desde el Canal de Youtube... HAZ CLIC AQUI

     Aprovechando que poco a poco, nos estamos acostumbrando a trabajar en proyectos locales de Drupal, ejecutando Lando para nuestros servidores, por ser la forma más sencilla y rápida de comenzar a desarrollar, utilizando los contenedores de Docker sin tener que complicarnos la vida; en esta ocasión, te quiero mostrar la manera de comenzar con un proyecto de Symfony 5, en un entono Linux, con WSL2 y Windows 11, y así podrás comenzar a explorar otras alternativas para tus proyectos, además de conocer la estructura en la que está basado Drupal, a partir de la versión 8.

Prerrequisitos:

- Tener instalado en tu servidor local Lando. Si todavía no lo haz hecho y quieres aprender cómo hacerlo, Haz clic aquí

 

NOTA: Puedes acceder al repositorio listo para utlizar en este enlace  https://github.com/drupaladicto/symfony5-lando

 

Cómo instalar y comenzar un proyecto con Symfony usando Lando

     En realidad es mucho más sencillo de lo que pudieras imaginar, al igual que explicamos en el capítulo para instalar Drupal 10, solo necesitaremos colocarnos en la ubicación deseada para nuestro proyecto y una vez alli, creaemos el archivo al que llamaré configurador.sh, donde lo más importante es la extensión .sh, para que nos permita ejecutarlo dentro de nuestro servidor linux.

     A continaución, copiaremos el siguiente código, le daremos permisos totales, para evitar fallos durante el proceso de descarga e instalación y ya podremos comenzar a desarrollar casi de inmediato.

# Initialize a symfony recipe
mkdir symfony5-app \
  && cd symfony5-app \
  && lando init \
    --source cwd \
    --recipe symfony \
    --webroot public \
    --name symfony5-app

# Install symfony
lando composer create-project symfony/skeleton:"^5.4" tmp && cp -r tmp/. . && rm -rf tmp

# Install other Symfony dependencies you may like
lando composer require annotations asset doctrine encore form logger profiler security security-guard stof/doctrine-extensions-bundle twig validator var-dumper

# Start it up
lando start

# List information about this app.
lando info

# Run bin/console commands with: lando console
# Here is how to clear cache; 
lando console cache:clear

 

     Aclaración 24 de abril 2022: Poco después de haber subido el video y publicado la documentación, pude comprobar que el bundle Make, de Symfony se había actualizado para la versión 5 y daba fallos con la versión 5.4.6, por lo que decidí removerlo del archivo de instalación configurador.sh.

     No obstante, una vez terminada la instalación, podrás descargar la versión estable del bundle Make, ejecutando en tu consola el siguiente comando:

lando composer make

Explicación:

     En las primeras líneas, se creará la carpeta para nuestro proyecto y, a continuación, se moverá para añadir el arhivo de configuración de Lando, e iniciará el proceso de la descarga desde el repositorio oficial de Drupal. 

     Deberías sustituir, si lo prefieres, todas las líneas donde ves symfony5-app, que en este caso se refiere tanto al nombre de la carpeta donde estará alojado el proyecto de Symfony, como al nombre que dará Lando una vez instalado y que podrás comprobar si abres el archivo de cofiguración .lando.yml.

  # Initialize a symfony recipe
mkdir symfony5-app \
  && cd drupal10-app \
  && lando init \
    --source cwd \
    --recipe symfony \
    --webroot public \
    --name symfony5-app

     Las siguientes líneas son las encargadas de descargar el esqueleto para un proyecto Symfony, utilizando el comando de Lando Composer.

# Install symfony
lando composer create-project symfony/website-skeleton tmp && cp -r tmp/. . && rm -rf tmp

     En la siguiente línea, se descargarán las dependencias o paquetes, más comunes para comenzar a desarrollar nuestros proyectos, dentro de los que se incluyen doctrine, twig, entre otros, ahorrándonos tiempo considerablemente. El resto de paquetes podrás consultarlos y descargarlos desde la web: flex.symfony.com 

 # Install other Symfony dependencies you may like
lando composer require annotations asset doctrine encore form logger maker profiler security security-guard stof/doctrine-extensions-bundle twig validator var-dumper

     A continuación, se levantan nuevamente los servicios de Lando, para poner en funcionamiento la aplicación.

# Start it up
lando start

     Por último, se muestra la información del proyecto, gracias al comando Lando info y se limpia la consola, para que podamos acceder a nuestro proyecto y comenzar a trabajar en él.

# List information about this app.
lando info

# Run bin/console commands with: lando console
# Here is how to clear cache; 
lando console cache:clear

 

Curso Symfony 5 | www.drupaladicto.com - Consultor especializado en drupal y symfony

Curso Symfony 5 | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Si quieres explorar algo más de información antes del próximo artículo, puedes visitar la documentación oficial de Lando para Symfony