lando https://drupaladicto.com/ es Drupal 8 | Instalación con Lando https://drupaladicto.com/curso/drupal-8-paso-paso/drupal-8-instalacion-con-lando <span class="field field--name-title field--type-string field--label-hidden">Drupal 8 | Instalación con Lando</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <style>#video-only-878 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-878 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-878 .play-btn { background: radial-gradient(#1fd7d9 50%, rgba(66, 109, 202, 0.4) 52%); }</style> <div class="paragraph paragraph--type--video-only paragraph--view-mode--default" id="vol-878"> <section id="video-only-878" class="about area-padding video-block-wrapper"> <div class="col video-box"> <div class="portada"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-07/portada-gratuito-grande_2.jpg?itok=8dBQYXT7" class="img-fluid" alt=""> <div class="field field--name-vo-youtube-video field--type-entity-reference field--label-visually_hidden"> <div class="field__label visually-hidden">Video de Youtube</div> <div class="field__item"><article class="media media--type-remote-video media--view-mode-diapositiva-1200x650"> <div class="field field--name-field-media-oembed-video field--type-string field--label-visually_hidden"> <div class="field__label visually-hidden">URL de Video remoto</div> <div class="field__item"><div class="modal micromodal-slide" id="modal-media-598-0-field-media-oembed-video" aria-hidden="true"> <div class="modal__overlay" tabindex="-1" data-micromodal-close> <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-media-598-0-field-media-oembed-video-content"> <a class="modal__btn" data-micromodal-close aria-label="Close this dialog window">X</a> <main class="modal__content" id="modal-media-598-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/NMiDZgnRNi8&amp;max_width=0&amp;max_height=0&amp;hash=7gbzgVK0TxYGhXVoWIFJOPQr-FLDREpwM0RWzXaeBIQ" frameborder="0" allowtransparency="" class="media-oembed-content" title="Time Value of Money"></iframe></div> </main> </div> </div> </div> <div><a class="myButton" data-micromodal-trigger="modal-media-598-0-field-media-oembed-video"><span class="btn play-btn">.</span></a></div> </div> </div> </article> </div> </div> </div> </div> </section> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1190" style="background-color: ;border: solid px;border-color: #096ba0;border-radius: 5px;padding: 10px;"> <div class="clearfix text-formatted field field--name-to-text field--type-text-long field--label-visually_hidden"> <div class="field__label visually-hidden">Texto</div> <div class="field__item"><h2><strong>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... <a href="https://youtu.be/NMiDZgnRNi8" target="_blank">HAZ CLIC AQUI</a></strong></h2> <p>     Si quieres dedicarte al desarrollo de aplicacione web, y además te gustaría probar con Drupal 8, estás de suerte, porque en esta ocasión podrás acceder a un repositorio y descargarte todo lo que necesitarás para comenzar a trabajar con este potente CMS.</p> <h2>   Contenido del repositorio Drupal 8 - Lando</h2> <ul><li>Todos los archivos de un proyecto Drupal 8 Base, listo para funcionar</li> <li>Los archivos para un tema personalizado, basado en Bartik, para que puedas comenzar a jugar con los CSS</li> <li>La base de datos de un proyecto Drupal nuevo</li> <li>Los módulos principales activados y configurados: (Admin Toolbar, Pathauto)</li> <li>El archivo de Lando, para que puedas poner en marcha en pocos minutos tu proyecto y además podrás ejecutar lando drush y lando composer, entre otros.</li> </ul><h2>   Instalación y configuración del Proyecto Drupal 8 Lando</h2> <ol><li> <h3>Descargar y configurar Lando en tu entorno local.</h3> <p>   Yo soy usuario Windows, así que para poder trabajar con Linux, he instalado WLS2, con una distribución de Ubuntu 22.04, dentro de mi ordenador con Windows 11. De esta forma, puedo tener ambos entornos, sin la necesidad de complejas configuraciones, ni que se ralentice mi máquina.<br />    Así que lo único que necesitaremos en este caso será descargar los archivos de Lando, si todavía no sabes cómo hacerlo, puedes ver el video y la documentación <a href="https://bit.ly/3EcE39z" target="_blank">HACIENDO CLIC AQUÍ</a>.<br />    Ahora que ya tenemos instalado Lando, crearemos la carpeta donde estará nuestro Drupal 8 y a continuación, vamos a generar nuestro archivo de configuración de Lando, ejecutando el siguiente comando:</p> <pre> lando init</pre> <p>   En cuanto hayamos terminado con el proceso, podremos arrancar Lando, para poder ejecutar el Composer, que necesitaremos en el siguiente paso.</p> </li> <li> <h3>Clonar el repositorio y arrancar Lando</h3> <p>   Ya que tenemos Lando instalado y listo para comenzar, nos colocaremos en la ubicación donde estará nuestro proyecto y a continuación, vamos a clonar el repositorio, para que descargue los primeros archivos del Drupal que vamos a necesitar.</p> <pre> git clone https://github.com/drupaladicto/drupal8-lando.git</pre> <p>   En el repositorio, además de los archivos de Drupal, encontraremos una carpeta llamada Extras, dentro estarán el archivo settings.php, que tendremos que copiar a la ubicación: “<strong><em>sites/default/settings.php</em></strong>” y la base de datos que importaremos más adelante, donde tendrás configurado el subtheme y algunos módulos adicionales.</p> </li> <li> <h3>Descargar las dependencias de Drupal</h3> <p>   Ahora que ya tenemos los primeros archivos en nuestro entorno local, podremos arrancar nuestro servidor de Lando, para ello ejecutaremos el siguiente comando:</p> <pre> lando start</pre> <p>    A continuación descargaremos el resto de dependencias de Drupal 8, para esto necesitaremos Composer, así que ejecutaremos el siguiente comando:</p> <pre> lando composer update</pre> </li> <li> <h3>Configuración de settings.php y la base de datos</h3> <p>   Ya casi hemos terminado, como hemos mencionado anteriormente, necesitaremos colocar el settings.php, en la ubicación correcta para que Drupal pueda funcionar, pero además de esto, tendremos que añadir nuestra base de datos. <br />    Los detalles de la base de datos están configurados en el archivo de configuración de lando .lando.yml, para asegurarte, puedes ejecutar el comando lando info y verás en pantalla, toda la información que necesitarás relacionada con tu proyecto:</p> </li> </ol><p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 25.23%;" data-ratio="25.23" data-b-token="b-eb240a0a54f" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Instalacion Drupal 8 Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Instalacion Drupal 8 Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-62f8af28aa866.png?itok=Z1vjgdJh" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="164" typeof="foaf:Image" /></div></div> <p>Así que nos moveremos a la carpeta Extras y ejecutaremos el siguiente comando:</p> <pre> lando db-import nuestrabase.sql</pre> <h3>5.- Accediendo a nuestro Drupal 8</h3> <p>   Ya estamos listos para acceder a nuestro Drupal 8 y comenzar en nuestro viaje de exploración.<br />     Pero antes nos aseguraremos de que todo esté correcto, por eso ejecutaremos el siguiente comando de Lando:</p> <pre> lando rebuild </pre> <p> </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 24.77%;" data-ratio="24.77" data-b-token="b-357c75a2071" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Curso Drupal 8 | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Curso Drupal 8 | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-62f8af89e1e5c.png?itok=0_DuQjyp" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="161" typeof="foaf:Image" /></div></div> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 48.46%;" data-ratio="48.46" data-b-token="b-926768c8f67" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Curso Drupal 8 | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Curso Drupal 8 | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-62f8afaceaff7.png?itok=htGdk_-x" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="315" typeof="foaf:Image" /></div></div> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 52%;" data-ratio="52" data-b-token="b-3a8317ab6fb" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Curso Drupal 8 | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Curso Drupal 8 | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-62f8b00b3c1d9.png?itok=pPWHHerq" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="338" typeof="foaf:Image" /></div></div> <h3>   Cómo acceder a la administración del Drupal 8</h3> <p>     Cuando ya tengas funcionando el Drupal 8, necesitarás acceder como administrador para poder comenzar a evaluar, explorar y crear tus propios cambios en dentro del proyecto. Para ello, sólo tendrás que ejecutar el siguiente comando y luego copiar en el navegador a partir de "/user":</p> <p>lando drush:uli</p> <p>     Si nunca haz hecho esto de recuperar el acceso utilizando Drush, puedes ver el ejemplo <a href="https://www.drupaladicto.com/curso/drush-introduccion-y-comandos-mas-utiles" target="_blank">HACIENDO CLIC AQUÍ</a></p> </div> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 18/03/2023 - 18:22</span> Sat, 18 Mar 2023 17:22:13 +0000 webmaster 401 at https://drupaladicto.com Next.js | Instalación con Lando https://drupaladicto.com/curso/commerce-nextjs/nextjs-instalacion-con-lando <span class="field field--name-title field--type-string field--label-hidden">Next.js | Instalación con Lando</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1207" style="background-color: ;border: solid px;border-color: #096ba0;border-radius: 5px;padding: 10px;"> <div class="clearfix text-formatted field field--name-to-text field--type-text-long field--label-visually_hidden"> <div class="field__label visually-hidden">Texto</div> <div class="field__item"><p>    Si estamos trabajando en un proyecto Drupal Healess con Next.js, tendremos que buscar la manera más sencilla y rápida para crear y configurar nuestra aplicación en un entorno local. En este caso, vamos a crear la apliación de Next.js que conectará con nuestro Drupal Commerce, para ello utilizaremos Lando.</p> <p>     Desde que lo descubrí, recomiendo a todos el uso de Lando, ya que es la forma más sencilla y potente, de configurar casi todo lo que necesitarás, para tus proyectos, sin perder tiempo innecesario en descargas y configuraciones complicadas.</p> <p>     Si todavía no has trabajado con Lando, te dejo una guía rápida de instalación, para que puedas continuar de inmediato: <a href="/curso/instalar-lando-en-wsl2-con-windows-10-o-superiores">HAZ CLIC AQUI</a></p> <h2>   Cómo instalar Next.js creando un archivo de configuración .lando.yml</h2> <p>     A diferencia de la instalación que realizamos para el Drupal Commerce, esta vez crearemos nuestro propio archivo de configuracíon, para tener el control total sobre detalles como la url y el puerto con el que accederemos a nuestra aplicación, o las versiones necesarias de node, yml, etc.</p> <p>     Así que nos colocaremos en la ubicación destinada a nuestra aplicación Next.js; a continuación, crearemos la carpeta para alojarla, y dentro crearemos el nuevo archivo de configuración para lando:</p> <pre> sudo mkdir nextapp</pre> <pre> sudo chmod -R 777 nextapp</pre> <pre> cd nextapp</pre> <pre> sudo touch .lando.yml</pre> <p>     Ahora abriremos el archivo, con el editor nano o el de tu preferencia, y pegaremos el siguiente código dentro:</p> <pre> name: nextapp proxy: appserver: - nextapp.lndo.site services: appserver: type: node:14 command: "yarn dev --hostname 0.0.0.0 --port 80" install_dependencies_as_me: - yarn install tooling: yarn: service: appserver npm: service: appserver node: service: appserver </pre> <p>     Guardaremos los cambios y arrancaremos lando, para comenzar con la descarga de los archivos necesarios para nuestra aplicación Next.js, para ello, ejecutaremos el siguiente comando:</p> <pre> lando start</pre> <p>     Una vez arrancado lando, podremos ejecutar uno de los siguientes comando, dependiendo de lo que quieras hacer con tu aplicación:</p> <h3>   Opción 1 - Uso de inicio básico</h3> <p>     En este caso, descargarías el esqueleto básico para tu aplicación Next.js, con el comando siguiente:</p> <pre> lando yarn create next-app -e https://github.com/chapter-three/next-drupal-basic-starter</pre> <h3>   Opción 2 - Uso de inicio básico con DrupalClient</h3> <p>     Esta es la opción que utilizaremos para nuestra aplicación, ya que el propósito será conectarla con el Drupal Commerce que hemos instalado previamente:</p> <pre id="using-basic-starter-with-drupalclient"> lando yarn create next-app -e https://github.com/chapter-three/next-drupal-basic-starter-client</pre> <p>     En este ejemplo, hemos optado por la opción dos, para nuestra aplicación Next.js.</p> <p>     Una vez descargados los archivos de nuestra aplicación my-app, ya sólo nos faltará conectar nuestra recién estrenada aplicación Next.js, con nuestro Drupal Commerce, eso lo veremos en el siguiente capítulo.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 48.31%;" data-ratio="48.31" data-b-token="b-a6e8ee4f9f9" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-63033d015df70.png?itok=642oMal2" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="314" typeof="foaf:Image" /></div></div> <p>Hasta la próxima.</p> </div> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Jue, 16/03/2023 - 11:02</span> Thu, 16 Mar 2023 10:02:02 +0000 webmaster 371 at https://drupaladicto.com Next | Módulo Drupal https://drupaladicto.com/curso/commerce-nextjs/next-modulo-drupal <span class="field field--name-title field--type-string field--label-hidden">Next | Módulo Drupal</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1206" style="background-color: ;border: solid px;border-color: #096ba0;border-radius: 5px;padding: 10px;"> <div class="clearfix text-formatted field field--name-to-text field--type-text-long field--label-visually_hidden"> <div class="field__label visually-hidden">Texto</div> <div class="field__item"><p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 49.25%;" data-ratio="49.25" data-b-token="b-5374ae50cec" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Nextjs Drupal Module | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Nextjs Drupal Module | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-6324346e2fabe.jpg?itok=GVOdjjN-" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="800" height="394" typeof="foaf:Image" /></div></div> <p>     Este módulo está diseñado para aumentar las posibilidades en la generación de contenidos estático, desde Drupal, para facilitar las tareas de presentación con dicho contenido en una aplicación creada con Next.js y conectada con Drupal en modo Desacoplado (Headless).</p> <p>  Descarga y Activación:</p> <p>Para descargar y activar cualquier módulo de Drupal tienes varias opciones:</p> <p><strong>     Descarga:</strong><br /><br />           1.- La forma recomendada a partir de Drupal 8, es utilizando el gestor de paquetes Composer, ejecutando en tu consola el comando:</p> <pre> composer require drupal/next</pre> <p>          2.- Descargándolo manualmente el módulo desde la página oficial del <a href="https://www.drupal.org/project/next">Módulo Next.js</a> y una vez descargado y colocado en carpeta "modules/contrib", si haz descargado todos tus módulos manualmente, deberías crear la carpeta "contrib", para que puedas diferenciar entre tus módulos personalizados y los que están disponibles directamente en la Página oficial de Drupal.<br />  </p> <p>     <strong>Activación:</strong></p> <p>          1.- Utilizando la herramienta de consola Drush, la opción "-y" activará todos los sub-modulos automáticamente</p> <pre> drush en next -y</pre> <p>          2.- Desde la interfaz de usuario de Drupal, en la url "/admin/modules", y luego marcando el check junto al nombre de tu módulo y haciendo clic en el botón guardar que aparecer al final de la página.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 63.08%;" data-ratio="63.08" data-b-token="b-b58e158f6dd" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Nextjs Drupal Module | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Nextjs Drupal Module | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-6324349f3d93f.png?itok=LWhN8drd" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="410" typeof="foaf:Image" /></div></div> </div> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Jue, 16/03/2023 - 10:44</span> Thu, 16 Mar 2023 09:44:51 +0000 webmaster 369 at https://drupaladicto.com Next en Drupal Commerce | Creación de un sitio https://drupaladicto.com/curso/commerce-nextjs/next-en-drupal-commerce-creacion-de-un-sitio <span class="field field--name-title field--type-string field--label-hidden">Next en Drupal Commerce | Creación de un sitio</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1205" style="background-color: ;border: solid px;border-color: #096ba0;border-radius: 5px;padding: 10px;"> <div class="clearfix text-formatted field field--name-to-text field--type-text-long field--label-visually_hidden"> <div class="field__label visually-hidden">Texto</div> <div class="field__item"><p>     Ahora que ya tenemos instaladas todas las dependencias del módulo Next.js, podremos comenzar a configurar nuestro sitio Next, dentro de Drupal. Suena un poco confuso, tener un sitio dentro de otro, pero el objetivo es servir la información guardada en Drupal, para que pueda ser consultada desde la aplicación externa, que en este caso estará creada con Next.js.</p> <p>     Por esta razón, creaemos un servicio, con su propia url, a la que cual podremos acceder una vez comencemos con la creación de nuestra aplicación Next.js, que todavía no hemos creado.</p> <h2>     Paso 1 - Creación del Sitio Next dentro de Drupal</h2> <p>     En este paso, nos dirigiremos a al url "<strong>/admin/config/services/next</strong><em>", y a continuación haremos clic en la opción para añadir un nuevo Sitio Next.</em></p> <p><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" src="/sites/default/files/inline-images/file-63032d91bf3e6.jpg" /></p> <p>     Se nos abrirá una pantalla, donde veremos cualquier Sitio Next que hayamos creado, pero como en nuestro caso, todavía no tenemos ninguno, haremos clic en el botón de Añadir Sitio.</p> <p><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" src="/sites/default/files/inline-images/file-63032dbfe85cc.jpg" /></p> <p>    Ahora rellenaremos los campos con la siguiente información:</p> <p>Etiqueta: <strong>tienda</strong></p> <p>URL Base: <strong>http://drupalcommerce.lndo.site</strong></p> <p>Preview URL: <strong>http://drupalcommerce.lndo.site/api/preview</strong></p> <p>Preview secret: <strong>preview-secret-here</strong></p> <p><strong> </strong>    Una vez hayamos introducido todos los cambios, habremos creado nuesto primer Sitio Next.js dentro de Drupal.</p> <h2>   Paso 2 - Configuración de las URLs o Paths</h2> <p>     El módulo <em><strong>next-drupal</strong></em> utiliza las rutas, para resolver recursos para `<strong>getStaticProps</strong>`. Por lo tanto, para que esto funcione, necesitaremos configurar los alias de ruta, para nuestros tipos de contenido.</p> <p>     Para configurar estar rutas, utilizaremos los Patrones, que nos facilita el módulo Pathauto, que ya hemos instalado, como parte de las dependencias para el módulo Next.js.</p> <p>     Así que vamos a crear nuestro primer patron de url, asignado a los artículos de Drupal.</p> <p>     Para añadir un nuevo patrón de url, nos dirigiremos a <em><strong>/admin/config/search/path/patterns/add</strong>, y una vez allí, seleccionaremos cuál será la entidad o entidades a las que vamos a configurarles dicho patrón. En nuestro caso, vamos a establecer el patrón para los productos:</em></p> <p><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" src="/sites/default/files/inline-images/file-63032de23dc61.png" /></p> <h3>Paso 3 - Activación del Modo de Previsualización</h3> <p>     El módulo <strong>Next.js</strong>, junto con el complemento <em><strong>next-drupal</strong></em>, nos facilitará la creación de rutas para la vista previa de Next.js.</p> <p>     Si queremos configurar el modo de vista previa para un tipo de entidad, en este caso, nuestros productos, debemos configurar:</p> <ol><li><strong>Un consumidor autenticado</strong>, para ello, utilizaremos el <a href="https://www.drupaladicto.com/curso/simple-oauth">Módulo Simple OAuth</a>, que se descargó como parte de las dependencias del módulo Next.js.</li> <li>Un <strong>site resolver </strong>o resolución de sitio para el tipo de entidad.</li> </ol><p>     Para crar el Consumidor autenticado, antes deberás crear el Rol, con sus respectivos persmisos y a continuación, crear un usuario y asignarle dicho Rol, para que pueda acceder.</p> <p>   3.1 - Creación y configuración del Consumidor</p> <p>     Si todavía no has creado un Consumidor, te invito a leer y ver los videos y la documentación siguiente:</p> <ul><li> <p><a href="https://www.drupaladicto.com/curso/conectando-nuxtjs-con-drupal-9-parte-1">Conectando Nuxt.js con Drupal 9 (Parte 1)</a><br />  </p> </li> <li> <p><a href="https://www.drupaladicto.com/curso/conectando-nuxtjs-con-drupal-9-parte-2">Conectando Nuxt.js con Drupal 9 (Parte 2)</a></p> </li> </ul><p>   3.2 - Creación y configuración del Site Resolver</p> <p>     Un sistema de resolución de sitios le dice a Drupal cómo resolver la URL de vista previa para una entidad.</p> <p>     Para nuestro sitio, vamos a configurar una resolución para el tipo de entidad <strong>Producto</strong>. Por lo que accederemos a la url <em><strong>/admin/config/services/next/entity-types</strong></em></p> <p><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" src="/sites/default/files/inline-images/file-63032e06e93ea.jpg" /></p> <p>     Una vez, accedamos a la siguiente pantalla, seleccionaremos <strong>Configure entity type:</strong></p> <p><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" src="/sites/default/files/inline-images/file-63032e2816996.jpg" /></p> <p>    En esta segunda pantalla, tendremos que seleccionar varias opciones que se nos irán desplegando, en función de nuestra primera opción:</p> <p>     Nosotros seleccionaremos el Producto, como entidad para nuestro ejemplo.</p> <p><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" src="/sites/default/files/inline-images/file-63032e49bb1b1.jpg" /></p> <p><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" src="/sites/default/files/inline-images/file-63032e6310114.jpg" /></p> <p><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" src="/sites/default/files/inline-images/file-63032e7f2bd2c.jpg" /></p> <p>     Cuando hayamos terminado de seleccionar todo, haremos clic en el botón Guardar.</p> <p>     Ahora ya podemos comenzar a crear nuestra Aplicación de Next.js... </p> <p>     Nos vemos en el siguiente capítulo.</p></div> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Jue, 16/03/2023 - 10:42</span> Thu, 16 Mar 2023 09:42:10 +0000 webmaster 368 at https://drupaladicto.com Drupal Commerce y Next.js | Prerrequisitos https://drupaladicto.com/curso/commerce-nextjs/drupal-commerce-y-nextjs-prerrequisitos <span class="field field--name-title field--type-string field--label-hidden">Drupal Commerce y Next.js | Prerrequisitos</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <style>#video-only-895 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-895 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-895 .play-btn { background: radial-gradient(#1fd7d9 50%, rgba(66, 109, 202, 0.4) 52%); }</style> <div class="paragraph paragraph--type--video-only paragraph--view-mode--default" id="vol-895"> <section id="video-only-895" class="about area-padding video-block-wrapper"> <div class="col video-box"> <div class="portada"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-07/portada-gratuito-grande_2.jpg?itok=8dBQYXT7" class="img-fluid" alt=""> <div class="field field--name-vo-youtube-video field--type-entity-reference field--label-visually_hidden"> <div class="field__label visually-hidden">Video de Youtube</div> <div class="field__item"><article class="media media--type-remote-video media--view-mode-diapositiva-1200x650"> <div class="field field--name-field-media-oembed-video field--type-string field--label-visually_hidden"> <div class="field__label visually-hidden">URL de Video remoto</div> <div class="field__item"><div class="modal micromodal-slide" id="modal-media-615-0-field-media-oembed-video" aria-hidden="true"> <div class="modal__overlay" tabindex="-1" data-micromodal-close> <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-media-615-0-field-media-oembed-video-content"> <a class="modal__btn" data-micromodal-close aria-label="Close this dialog window">X</a> <main class="modal__content" id="modal-media-615-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/658vsNAcQCY&amp;max_width=0&amp;max_height=0&amp;hash=E4teYfSU_Q9JEfdj51yM68TdWrZVscnD-l7tlwV6wus" frameborder="0" allowtransparency="" class="media-oembed-content" title="Time Value of Money"></iframe></div> </main> </div> </div> </div> <div><a class="myButton" data-micromodal-trigger="modal-media-615-0-field-media-oembed-video"><span class="btn play-btn">.</span></a></div> </div> </div> </article> </div> </div> </div> </div> </section> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1204" style="background-color: ;border: solid px;border-color: #096ba0;border-radius: 5px;padding: 10px;"> <div class="clearfix text-formatted field field--name-to-text field--type-text-long field--label-visually_hidden"> <div class="field__label visually-hidden">Texto</div> <div class="field__item"><h2><strong>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... <a href="https://youtu.be/658vsNAcQCY" target="_blank">HAZ CLIC AQUI</a></strong></h2> <p>     Para poder conectar nuestra tienda de Drupal Commerce, con la aplicación que desarrollaremos en Next.js, tendremos que cumplir con ciertos requisitos, necesarios para realizar dicha operación.</p> <p>     Ahora que ya tenemos instalado Drupal Commerce, podremos continuar con esta siguiente fase.</p> <h2>   Cómo desacoplar Drupal con Next.js y JSON:API</h2> <h3>     Paso 1 - Tener instalado y funcionando un Drupal</h3> <p>           En nuestro caso hemos instalado ya un Drupal Commerce, pero podrías hacer lo mismo con una instalación de Drupal normal. Si todavía no lo tienes instalado, pueder ver cómo hacerlo en el Capítulo 1. <a href="/curso/drupal-commerce-instalacion-con-lando" target="_blank">HAZ CLIC AQUÍ</a></p> <h3>     Paso 2 - Descargar e instalar el módulo contribuido Next.js</h3> <p>          Este será el módulo que nos permitirá conectar nuestro Drupal Commerce, con la aplicación en Nuxt.js que crearemos un poco más adelante. Para descargar e instalar el módulo Nuxt.js, utilizaremos el gestor de paquetes Composer, pero en esta ocasión, añadiremos Lando, como parte del comando, ya que en nuestra entorno local hemos preferido utilizar Lando, en lugar de configurar un servidor tradicional del tipo LAMP. Así que nos colocaremos en la carpeta Root de nuestro Drupal Commerce y ejecutaremos los siguientes comandos:</p> <pre> lando composer require 'drupal/next:^1.1'</pre> <pre> lando drush en next</pre> <pre> lando drush cr</pre> <pre> lando drush updb</pre> <p> </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 36.92%;" data-ratio="36.92" data-b-token="b-dce47613a10" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-63032997630b7.png?itok=mhqZSi6G" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="240" typeof="foaf:Image" /></div></div> <p>      Debido a que está cada vez más cerca el lanzamiento de <strong>Drupal 10</strong>, es posible, que al intentar ejecutar el comando de <strong>drush en</strong>, te encuentres con un error de compatiblidad, parecido al siguiente:</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 40.46%;" data-ratio="40.46" data-b-token="b-302c86e5eec" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630329c680b3d.png?itok=uzWCyB0F" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="263" typeof="foaf:Image" /></div></div> <p>     Para solucionarlo, sólo tendremos que ejecutar el siguiente comando, que nos asegurará la descarga de las versiones más actuales y compatibles de Drush, para todos nuestros proyectos. Así que ejecutaremos esto:</p> <pre> lando composer require drush/drush --with-all-dependencies</pre> <p>     Una vez se ejecute, podremos continuar con el proceso de activación de los módulos o cualquier otro procedimiento que necesite de Drush.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 28.77%;" data-ratio="28.77" data-b-token="b-0cd01933b86" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-63032a237d1a5.png?itok=uFf3f-bF" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="187" typeof="foaf:Image" /></div></div> <p>     Con la activación del módulo Next.js, verás que se activarán todas sus dependencias, necesarias para que funcione correctamente. Estas son:</p> <ul><li>Decoupled_router. Descripción e instalación <a href="/curso/decoupled-router" target="_blank">AQUÍ</a><br />  </li> <li>Simple_oauth. Descripción e instalación <a href="/curso/simple-oauth" target="_blank">AQUI</a><br />  </li> <li>Serialization<br />  </li> <li>Consumers. Descripción e instalación <a href="/curso/consumers" target="_blank">AQUI</a><br />  </li> <li>Subrequests. Descripción e instalación <a href="/curso/subrequests" target="_blank">AQUI</a><br />  </li> <li>Pathauto. Descripción e instalación <a href="/curso/pathauto" target="_blank">AQUÍ</a><br />  </li> <li>Chaos tools</li> </ul></div> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Jue, 16/03/2023 - 10:38</span> Thu, 16 Mar 2023 09:38:57 +0000 webmaster 367 at https://drupaladicto.com Drupal Commerce | Instalación con Lando https://drupaladicto.com/curso/commerce-nextjs/drupal-commerce-instalacion-con-lando <span class="field field--name-title field--type-string field--label-hidden">Drupal Commerce | Instalación con Lando</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <style>#video-only-896 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-896 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-896 .play-btn { background: radial-gradient(#1fd7d9 50%, rgba(66, 109, 202, 0.4) 52%); }</style> <div class="paragraph paragraph--type--video-only paragraph--view-mode--default" id="vol-896"> <section id="video-only-896" class="about area-padding video-block-wrapper"> <div class="col video-box"> <div class="portada"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-07/portada-gratuito-grande_2.jpg?itok=8dBQYXT7" class="img-fluid" alt=""> <div class="field field--name-vo-youtube-video field--type-entity-reference field--label-visually_hidden"> <div class="field__label visually-hidden">Video de Youtube</div> <div class="field__item"><article class="media media--type-remote-video media--view-mode-diapositiva-1200x650"> <div class="field field--name-field-media-oembed-video field--type-string field--label-visually_hidden"> <div class="field__label visually-hidden">URL de Video remoto</div> <div class="field__item"><div class="modal micromodal-slide" id="modal-media-616-0-field-media-oembed-video" aria-hidden="true"> <div class="modal__overlay" tabindex="-1" data-micromodal-close> <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-media-616-0-field-media-oembed-video-content"> <a class="modal__btn" data-micromodal-close aria-label="Close this dialog window">X</a> <main class="modal__content" id="modal-media-616-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/NspimkUO5mw&amp;max_width=0&amp;max_height=0&amp;hash=N8cQamhSo2G1c2M-s8ux2ImFXJMxnCwcjKbQRfOfl3Q" frameborder="0" allowtransparency="" class="media-oembed-content" title="Time Value of Money"></iframe></div> </main> </div> </div> </div> <div><a class="myButton" data-micromodal-trigger="modal-media-616-0-field-media-oembed-video"><span class="btn play-btn">.</span></a></div> </div> </div> </article> </div> </div> </div> </div> </section> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1203" style="background-color: ;border: solid px;border-color: #096ba0;border-radius: 5px;padding: 10px;"> <div class="clearfix text-formatted field field--name-to-text field--type-text-long field--label-visually_hidden"> <div class="field__label visually-hidden">Texto</div> <div class="field__item"><h2><strong>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... <a href="https://youtu.be/NspimkUO5mw" target="_blank">HAZ CLIC AQUI</a></strong></h2> <p>    Para comenzar nuestro viaje, hacia la construcción de una tienda virtual, utilizando Drupal Commerce, lo primero que necesitamos configurar, será  nuestro entorno de desarrollo. </p> <p>     Desde que lo descubrí, recomiendo a todos el uso de Lando, ya que es la forma más sencilla y potente, de configurar casi todo lo que necesitarás, para tus proyectos, sin perder tiempo innecesario en descargas y configuraciones complicadas.</p> <p>     Si todavía no has trabajado con Lando, te dejo una guía rápida de instalación, para que puedas continuar de inmediato: <a href="https://www.drupaladicto.com/curso/instalar-lando-en-wsl2-con-windows-10-o-superiores">HAZ CLIC AQUI</a></p> <h2>   Cómo instalar Drupal Commerce con Lando</h2> <p>     Ahora que ya tenemos instalado y configurado Lando, en nuestro ordenador, el siguiente paso será, crear la carpeta donde alojaremos nuestra tienda virtual, y a continuación, añadiremos el archivo de configuración de lando, para poder ejecutar los comandos de composer, sin la necesidad de nada más.</p> <h3>   Opciones de configuración para Lando</h3> <p>     Opción 1 - Generar el archivo de configuración de Lando</p> <p>     Tienes dos opciones para configurar un entorno con lando, la primera sería colocándote dentro de la carpeta donde alojarás tu proyecto, darle permisos totales a la carpeta, para evitar fallos durante la descarga, y a continuación, ejecutar el comando de inicialización para lando:</p> <pre> mkdir drupalcommerce</pre> <pre> sudo chmod -R 777 drupalcommerce</pre> <pre> cd drupalcommerce</pre> <pre> lando init</pre> <p>     Una vez ejecutes lando init, verás en pantalla las preguntas relacionadas con tu configuración, en este caso, utilizaremos el recipe <strong>drupal9</strong>, para instalar nuestro Drupal Commerce.</p> <p>     Opción 2 - Crear un archivo de configuración personalizado de Lando</p> <p>     En este segundo caso, al igual que en el anterior, crearemos la carpeta para nuestro proyecto y le daremos permisos totales, pero en lugar de generar el archivo de configuración para lando, ejecutando el comando lando init, crearemos previamente un archivo de configuración, con los parámetros deseados para trabajar en nuestro proyecto.</p> <p>     El nombre del archivo será .lando.yml, y el contenido dentro de éste debería ser algo parecido al siguiente:</p> <pre> name: drupalacommerce recipe: drupal9 config: php: 7.2 webroot: web composer_version: '1.10.1' services: phpmyadmin: type: phpmyadmin hosts: - database.drupal9.internal drupalcommerce: type: mariadb portforward: true creds: user: drupalcommerce password: drupalcommerce database: drupalcommerce</pre> <p>     Con el archivo de configuración personalizado, estaremos definiendo la versión específica para php y composer, además de los datos relacionados con la base de datos y el servicio de PhpMyAdmin, para administrar nuestras tablas a través de una interfaz gráfica.</p> <p>     Para nuestro ejemplo, hemos optado por la opción 1, por lo que una vez creada la carpeta para nuestro proyecto, hemos configurados los permisos necesarios, evitando fallos durante el proceso de instalación y a continuación, sólo hemso tenido que descargar el esqueleto del drupal commerce, utililizando el comando composer, ayudado de lando.</p> <h3>   Pasos para instalar Drupal Commerce usando el comando lando init</h3> <h3>     Paso 1 - Arrancar Lando</h3> <p>        Como ya tenemos el archivo de configuración .lando.yml, dentro de nuestra carpeta y hemos configurado correctamente los permisos, lo siguiente que haremos será arrancar lando, para poder comenzar a ejecutar los comandos de descarga e instalación de Drupal commerce:</p> <pre> lando init</pre> <h3>    Paso 2 - Iniciar la descarga del esqueleto para Drupal Commerce</h3> <p>        Una vez terminado el proceso de arranque para Lando, podremos iniciar la descarga de los archivos necesarios para la instalación de nuestra tienda, así que jecutaremos el siguiente comando, que nos creará una carpeta, con todos los archivos, de la cual tendremos que mover su contenido, una vez terminada la descarga, para que ocupen la carpeta principal de nuestro proyecto:</p> <pre> lando composer create-project drupalcommerce/project-base mystore --stability dev</pre> <h3>    Paso 3 - Extraer los arhivos descargados a la carpeta raiz</h3> <p>     En cuanto termine la descarga de los archivo, extraremos todo el contenido de mystore lo recolocaremos en nuestra carpeta raíz del proyecto:</p> <pre> sudo mv mystore/* .</pre> <pre> sudo mv mystore/.* .</pre> <p>     Por último, borraremos la carpeta, para que no nos moleste:</p> <pre> sudo rm -rf mystore</pre> <h3>    Paso 4 - Actualizar las dependencias de Drupal Commerce</h3> <p>     Anter de comenzar con la instalación de nuestra tienda virtual, nos aseguraremos de que tenemos todo lo necesario, para ello, ejecutaremos el comando de composer que se encargará de actualizar todas las dependencias definidas en el composer.json:</p> <pre> lando composer update</pre> <h3>   Paso 5 - Que comience la fiesta!!!</h3> <p>     Al igual que cualquier instalación de Drupal, una vez tenemos listo todo lo anterior, sólo tendremos que hacer acceder al navegador y hacer clic en las diferentes pantallas, hasta llegar al final del proceso. </p> <p>     Si quieres confirmar los datos de tu proyecto, antes de comenzar con la instalacíon, puedes ejecutar el comando de información de Lando:</p> <pre> lando info</pre> <p> </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 43.08%;" data-ratio="43.08" data-b-token="b-7b6b0e59783" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-6303246e85a6d.png?itok=XpBdACZI" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="280" typeof="foaf:Image" /></div></div> <p>     Presta atención especial, en la ventana donde introduces los datos de conexión, ya que en el campo para el host de la base de datos, no te permitirá colocar localhost, como en una instalación común de Drupal, el resto de pasos será el mismo de siempre.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 104.84%;" data-ratio="104.84" data-b-token="b-1e3c211cef0" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-6303249d5c9cb.png?itok=5cq0Ijx8" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="620" height="650" typeof="foaf:Image" /></div></div> <p>     A medida que vayas avanzando en el proceso de instalación, verás el algún momento que se actualizarán las traducciones, en el caso de que hayas optado por una instalación como yo, en Español.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 46.15%;" data-ratio="46.15" data-b-token="b-20949509ee5" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630324c8502ae.png?itok=LY5kTy-w" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="300" typeof="foaf:Image" /></div></div> <p>     Por último rellenarás la pantalla con los datos sobre tu usuario, el nombre del sitio, idioma, etc. y finalmente, verás la pantalla de bienvenida de tu Drupal Commerce, lista para que puedas comenzar a explorar y personalizarla a tu antojo.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 55.08%;" data-ratio="55.08" data-b-token="b-c77f2057056" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Curso Drupal Commerce Nextjs | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630324eb84267.png?itok=gW8guS2v" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="358" typeof="foaf:Image" /></div></div> <p>     En los próximos capítulos, instalaremos algunos módulos que nos servirán de ayuda y configuraremos la comunicación entre nuestro Drupal Commerce y Next.js.</p> <p>     Nos vemos pronto!!!</p> </div> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Jue, 16/03/2023 - 10:34</span> Thu, 16 Mar 2023 09:34:46 +0000 webmaster 366 at https://drupaladicto.com Instalar Drupal 9 en Ubuntu 20.04 con Lando y WSL2 en Windows 11 https://drupaladicto.com/actualidad/instalar-drupal-9-en-ubuntu-2004-con-lando-y-wsl2-en-windows-11 <span class="field field--name-title field--type-string field--label-hidden">Instalar Drupal 9 en Ubuntu 20.04 con Lando y WSL2 en Windows 11</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Jue, 09/03/2023 - 17:44</span> <div class="field field--name-field-contenidos-post field--type-entity-reference-revisions field--label-visually_hidden"> <div class="field__label visually-hidden">Contenidos</div> <div class="field__items"> <div class="field__item"> <style>#video-only-1033 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-1033 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-1033 .play-btn { background: radial-gradient(#1fd7d9 50%, rgba(66, 109, 202, 0.4) 52%); }</style> <div class="paragraph paragraph--type--video-only paragraph--view-mode--default" id="vol-1033"> <section id="video-only-1033" class="about area-padding video-block-wrapper"> <div class="col video-box"> <div class="portada"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-07/portada-post.jpg?itok=kSR2Q5ei" class="img-fluid" alt=""> <div class="field field--name-vo-youtube-video field--type-entity-reference field--label-visually_hidden"> <div class="field__label visually-hidden">Video de Youtube</div> <div class="field__item"><article class="media media--type-remote-video media--view-mode-diapositiva-1200x650"> <div class="field field--name-field-media-oembed-video field--type-string field--label-visually_hidden"> <div class="field__label visually-hidden">URL de Video remoto</div> <div class="field__item"><div class="modal micromodal-slide" id="modal-media-733-0-field-media-oembed-video" aria-hidden="true"> <div class="modal__overlay" tabindex="-1" data-micromodal-close> <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-media-733-0-field-media-oembed-video-content"> <a class="modal__btn" data-micromodal-close aria-label="Close this dialog window">X</a> <main class="modal__content" id="modal-media-733-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/ynQxdf__trc&amp;max_width=0&amp;max_height=0&amp;hash=CU4zVbXcCREXj9Ex5ObamT1hg1Yl70kA31l8co6P0T8" frameborder="0" allowtransparency="" class="media-oembed-content" title="Time Value of Money"></iframe></div> </main> </div> </div> </div> <div><a class="myButton" data-micromodal-trigger="modal-media-733-0-field-media-oembed-video"><span class="btn play-btn">.</span></a></div> </div> </div> </article> </div> </div> </div> </div> </section> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1139" style="background-color: ;border: solid px;border-color: #096ba0;border-radius: 5px;padding: 10px;"> <div class="clearfix text-formatted field field--name-to-text field--type-text-long field--label-visually_hidden"> <div class="field__label visually-hidden">Texto</div> <div class="field__item"><h2><strong>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... <a href="https://youtu.be/ynQxdf__trc" target="_blank">HAZ CLIC AQUI</a></strong></h2> <p>     Con la llegada de Docker, se cambió por completo la forma en que podíamos configurar entornos de desarrollo para nuestros proyectos web; ya que el uso de contenedores, permite crear entornos a medida, que podremos compartir entre los miembros de cualquier equipo, asegurándonos de evitar errores de compatibilidad entre los sistemas operativos de cada uno o el típico cambio de version en los diferentes lenguajes.</p> <h3>     Qué es Lando</h3> <p>         Aunque el concepto de "Dockerizar" nuestros entornos vino para facilitarnos la vida a los desarrolladores, la verdad es que entender su configuración y aplicación, puede llegar a ser un poco más complicada de lo que parece, sobretodo para los que venimos de trabajar con soluciones "todo en uno" del tipo Xampp, Wamp o Mamp. </p> <p>        Es por esta razón que poco a poco han ido surgiendo plataformas, como Lando, basadas en el uso de Docker y sus contenedores, que nos permitirá una instalación sencilla, para que podamos poner en marcha nuestros proyectos rápidamente y sin complicaciones.</p> <h3>     Prerrequisitos para instalar Lando con WSL2</h3> <p>        - Tener instalado y configurado el WSL2 ( <a href="/actualidad/como-instalar-drupal-9-usando-docker-en-windows-10-home" target="_blank">Aprende cómo hacerlo aquí</a> )</p> <p>        - Tener instalado y configurado el Docker Desktop for Windows ( NO INSTALAR DOCKER DENTRO DEL WSL2 ) - <a href="https://hub.docker.com/editions/community/docker-ce-desktop-windows" target="_blank">Página Oficial de Docker</a></p> <h2>     Cómo instalar Lando en Ubuntu 20.04 utilizando WSL2 en Windows 11</h2> <p>          Como ya es costumbre, hemos creado un usuario "NOROOT", para ejecutar nuestros comandos SUDO, sin riesgos de cargarnos nada por error dentro de nuestra distribución de Ubuntu 20.04. Si todavía no sabes cómo <a href="/actualidad/como-instalar-lamp-usando-wsl2-en-windows-10-1era-parte" target="_blank">Haz Clic aqui</a>. Una vez iniciada la sesión con nuestro usuario ejecutaremos los siguientes comandos para realizar la instalación de Lando.</p> <pre> sudo wget https://files.lando.dev/installer/lando-x64-stable.deb</pre> <pre> sudo dpkg -i lando-x64-stable.deb </pre> <h3>     Corrección de errores durante la instalación:</h3> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 42.15%;" data-ratio="42.15" data-b-token="b-0e32f81539e" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-6303757068729.png?itok=ME_M7Co2" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="325" height="137" typeof="foaf:Image" /></div></div> <p>   Instalar Docker-CE es uno de los requisitos para que Lando funcione correctamente, para saber cómo descargarlo e instalarlo en WSL2 <a href="/snippet/como-ejecutar-docker-ce-en-wsl2-running-docker-ce-wsl2">Haz clic aquí</a>  </p> <p><br />    Es posible que tengas algún error durante el proceso de instalación relacionado con los permisos de instalación, para solucionarlo <a href="/snippet/lando-depends-docker-ce-it-not-installable" target="_blank">Haz clic aquí</a></p> <p> </p> <h2>     Cómo instalar Drupal 9 utilizando Lando en Ubuntu con WSL2 y Windows 11</h2> <p>           Una vez hemos descargados y configurados los prerrequisitos, para continuar con nuestra instalación de Drupal, tenemos que aclarar un para de puntos, para que entendamos el porqué procederemos de esta manera.</p> <p>          Si hacemos una búsqueda rápida de Cómo instalar Drupal 9 usando Composer, encontraremos un enlace a al <a href="https://www.drupal.org/docs/develop/using-composer/using-composer-to-install-drupal-and-manage-dependencies" target="_blank">Página Oficial de Drupal</a>, donde nos recomienda que para hacerlo tendremos que emplear el gestor de paquetes Composer, para facilitar la descarga de todas las dependencias, así como para facilitar las actualziaciones tanto de Núcleo de Drupal, como de sus respectivos módulos.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 23.69%;" data-ratio="23.69" data-b-token="b-501caf517cd" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630375928ccc1.png?itok=cUHbhChT" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="154" typeof="foaf:Image" /></div></div> <p>          El problema radica en que Composer tiene como dependencia el uso de PHP, y el propósito de utilizar Docker, es para que no tengamos la necesidad de instalar nada directamente en nuestros ordenadores. En nuestra distribución de Ubuntu 20.04 que hemos configurado con WSL2 no queremos instalar nada más que lo necesario.</p> <p>         Si vamos a la <a href="https://docs.lando.dev/config/drupal9.html#getting-started" target="_blank">Página Oficial de Lando</a>, donde nos explica los pasos para realizar una instalación de Drupal 9, veremos que en su propuesta nos habla de ejecutar varios comandos, entre los que destaca la descarga de un archivo comprimido de Drupal 9, pero esto entra en conflicto con la recomendación que vimos anteriorente de utilizar Composer como parte del proceso de instalación para Drupal.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 47.85%;" data-ratio="47.85" data-b-token="b-722d4311242" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630375b2c2bc9.png?itok=xKK9pWGP" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="311" typeof="foaf:Image" /></div></div> <p>          Por suerte, dentro de los comandos disponibles en Lando está los que utilizan Composer, así que existe una forma de combinar ambas maneras y solucionar el conflicto.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 29.23%;" data-ratio="29.23" data-b-token="b-492eb5df4a9" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630375cf20702.png?itok=yWQCghJR" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="190" typeof="foaf:Image" /></div></div> <h2>     Solución</h2> <p>        Para poder realizar una instalación de nuestro proyecto Drupal 9, siguiendo las recomendaciones desde su página oficial y a la vez, beneficiarnos del uso correcto de Lando, sin tener que instalar nada fuera de los contenedores, tendremos que seguir los siguientes pasos:</p> <h2>     Paso 1 - Descargar una distribución de Drupal con todo lo necesario</h2> <p>          Vamos a descargar una instalación de Drupal 9, que cumpla con la estructura necesaria para que podamos realizar su instalación, ejecutando, una vez descargados los archivos, los comandos de Composer, desde dentro de los contenedores de Lando. <a href="https://github.com/drupal-composer/drupal-project" target="_blank">Haz clic aquí para descargar el Drupal 9</a></p> <p>          O si lo prefieres, puedes clonar el repositorio directamente con este comando y además descargará todos los archivos dentro de la carpeta con el nombre drupal-gatsby:</p> <pre> git clone https://github.com/drupal-composer/drupal-project.git/ drupal-gatsby</pre> <p> </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 63.85%;" data-ratio="63.85" data-b-token="b-0017c70ad58" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630375f25937d.png?itok=4uZeonpv" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="415" typeof="foaf:Image" /></div></div> <h2>      Paso 2 - Descomprimir los archivos e iniciar el Lando</h2> <p>            Una vez iniciemos sesión con nuestro usuario "NOROOT", colocaremos los archivos descargados y descomprimidos en esta ruta</p> <pre> /home/username/projects/yourproject</pre> <p>         A continuación nos moveremos dentro de la carpeta y luego ejecutaremos el comando de inicia Lando</p> <pre> lando init</pre> <p>        Esto creará el archivo de configuración de Lando llamado " .lando.yml ", que es donde podremos realizar cualquier cambio relacionado con la versión de PHP, servidores NGINX o Apache, Proxy, entre otras opciones.</p> <p>        Una vez ejecutado el comando, se nos irán presenando varias preguntas para realizar las respectivas modificaciones antes de arrancar Lando, en la primera de ella tendremos que especificar el lugar donde tenemos alojado nuestro codigo, ya que estamos dentro de la carpeta con nuestro Drupal 9, seleccionaremos la primera opción.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 40.27%;" data-ratio="40.27" data-b-token="b-b5959717bbe" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630376115aa48.png?itok=g1vyzwCS" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="452" height="182" typeof="foaf:Image" /></div></div> <p>        La siguiente pregunta está relacionada directamente con la versión del proyecto, en este caso, como queremos arrancar un Drupal 9, moveremos las flechas del teclado hasta encontrarla y luego haremos clic en ENTER.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 31.69%;" data-ratio="31.69" data-b-token="b-15459f5ac10" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-6303762ee6bc5.png?itok=p7IFU2MV" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="206" typeof="foaf:Image" /></div></div> <p>     En la siguiente pregunta tendremos que especificar la ubicación de nuestro archivo "webroot" o principal de Drupal; aunque todavía no existe, ya sabemos que al realizar una instalación de Drupal con Composer, estos archivos se colocarán dentro de la carpeta "web", así que especificaremos este nombre.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 10.75%;" data-ratio="10.75" data-b-token="b-b72a3537aaa" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-63037658ab86f.png?itok=fEWKuaDD" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="577" height="62" typeof="foaf:Image" /></div></div> <p>     A continuación tendremos que especificar el nombre para nuestra Aplicación, de esta forma, Lando podrá generar el identificador específico. Podremos poner el mismo que en nuestra carpeta o cualquier otro.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 12.15%;" data-ratio="12.15" data-b-token="b-7c7e157ba46" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-63037673e9875.png?itok=W263aAVd" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="469" height="57" typeof="foaf:Image" /></div></div> <p><strong>     ERROR DE PERMISOS</strong></p> <p>     Con el anterior comando, en nuestro caso, necesitaremos otorgarle permisos de escritura a la carpeta, para poder crear la configuración necesaria o de lo contrario nos devolverá el siguiente errror.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 46.84%;" data-ratio="46.84" data-b-token="b-94b1ad70e6a" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-6303768f6c426.png?itok=WHAyTMrZ" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="459" height="215" typeof="foaf:Image" /></div></div> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 6.62%;" data-ratio="6.62" data-b-token="b-6f4de71f1e7" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630376a22a820.png?itok=LfwjTd2O" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="43" typeof="foaf:Image" /></div></div> <p>     Si estás utilizando el usuario NOROOT, tendrás que darle permisos a Docker desde tu usuario ROOT, <a href="/snippet/como-corregir-error-docker-got-permission-denied-while-trying-connect-docker-daemon-socket" target="_blank">Haz clic aqui para saber cómo</a></p> <p>     Una vez hayamos modificado los permisos de la carpeta, podremos ejecutar nuevamente el comando Lando init y completar el proceso de configuración para nuestro proyecto.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 77.1%;" data-ratio="77.1" data-b-token="b-345e0af030f" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630376ba03343.png?itok=RV-xYWwe" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="620" height="478" typeof="foaf:Image" /></div></div> <h2>     Cómo arrancar nuestro proyecto con Lando</h2> <p>        Llegados a este punto, ya nos falta muy poco para poder comenzar a trabajar con nuestro Drupal, RECORDEMOS QUE NOS FALTAN ARCHIVOS POR GENERAR, pero antes de esto, vamos a ejecutar el siguiente comando para arrancar Lando.</p> <pre> lando start</pre> <p>        Con esta acción, Lando comenzará el proceso de creació y configuración de los contenedores para nuestro proyecto, tomando los datos que definimos en los pasos anteriores. Además ya tendremos la posibilidad de comenzar a ejecutar los comandos de Lando disponibles, para completar las tareas que nos falten, como la de generar los archivos de Drupal 9 por medio de Composer.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 74.46%;" data-ratio="74.46" data-b-token="b-21720958fcd" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630376e855c70.png?itok=l4p28xwB" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="484" typeof="foaf:Image" /></div></div> <p>     Una vez ejecutado el comando anterior, veremos que se han generados varios contenenedores, además de algunos datos relacionados con nuestro proyecto, coo por ejemplo los enlaces para acceder a nuestro dominio.</p> <p>     El problema en este momento, es que si intentáramos acceder a cualquiera de estas urls, el resultado será Página No Encontrada, ya que todavía tendremos que completar los archivos de Drupal necesarios para que este funcione.</p> <p>     Como vimos al principio del artículo, podremos ejecutar el siguiente comando disponible en lando, para que se descarguen todos los archivos que nos hacen falta.</p> <pre> lando composer install</pre> <p>     Y de inmediato comenzarán a descargarse todos los archivos definidos en el composer.json, dentro del Drupal.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 40.71%;" data-ratio="40.71" data-b-token="b-c2a94055957" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-6303770583f4d.png?itok=eooMZmfm" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="624" height="254" typeof="foaf:Image" /></div></div> <p>     Si ahora ejecutamos nuevamente el comando " lando start " podremos comprobar que accederemos a nuestro drupal sin ningún error. </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 39.38%;" data-ratio="39.38" data-b-token="b-99b220da847" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-6303771f37a52.png?itok=CO00kjUE" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="256" typeof="foaf:Image" /></div></div> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 48.31%;" data-ratio="48.31" data-b-token="b-ad1351c2e59" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-63037743a429d.png?itok=FnFth7Kv" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="314" typeof="foaf:Image" /></div></div> <h2>     Cómo puedo saber los datos de mis servidores (Base de datos, versión de Nginx, etc)</h2> <p>           Si has llegado a este paso sin complicaciones, lo siguiente que necesitarás serán los datos de acceso para decirle a Drupal el nombre de la base de datos, usuario, etc. esto podrás optenerlo con el comando siguiente</p> <pre> lando info</pre> <p>        Con esto podrás comprobar todas las informaciones relacionadas que necesitarás para continuar con tu instalación de Drupal 9. Como la versión de PHP, los nombre de los Host (Atención al host database para tu instalación en lugar de localhost)</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 73.38%;" data-ratio="73.38" data-b-token="b-86ecbdd295e" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-6303775d3aaab.png?itok=1M_U3zyq" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="477" typeof="foaf:Image" /></div></div> <p>     Al instalar Drupal, por defecto nos coloca "localhost", como nombre del servidor, en este caso, tendremos que modificarlo por el nombre generado por Lando para que podamos continuar con dicha instalación.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 89.08%;" data-ratio="89.08" data-b-token="b-daf1a6da58f" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-6303777616f59.png?itok=oTuZJFly" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="412" height="367" typeof="foaf:Image" /></div></div> <h2>    Cómo modificar la configuración por defecto de Lando</h2> <p>        Si estamos trabajando con un proyecto Drupal 9 desde cero, todo lo anterior nos viene de maravilla, ya que por defecto contamos con lo necesario para configurar, arrancar o incluso ampliar nuestro Drupal 9 descargando y activando nuevo módulos. Pero ¿qué pasa si en lugar de un proyecto nuevo, es un proyecto que ya existe y que nos acaban de adjudicar?, ¿podremos modificar la configuración por defecto, para adaptar la versión de PHP, o activar xdebug?</p> <p>     Es posible modificar cualquier configuración por defecto de Lando, gracias al archivo " .lando.yml ", que se genera al ejecutar el comando de inicialización lando init. </p> <p>     Sólo tendremos que abrir nuestro proyecto con el IDE que prefieras y buscarlo, para editarlo. Sólo ten en cuenta, que al tratarse de un archivo con la extensión ".yml", es muy importante guardar los espacios adecuados para que todo funcione de manera correcta. </p> <p>     En la siguiente imagen, he modificado la versión del PHP a "5.6" en lugar de "7.4" que se descargó por defecto.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 73.47%;" data-ratio="73.47" data-b-token="b-fd355f2bff2" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-6303779467d11.png?itok=RjwdDVmX" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="245" height="180" typeof="foaf:Image" /></div></div> <p>     Para que los cambios se realicen, será necesario detener y volver a arrancar lando con los comandos </p> <pre> lando stop lando start</pre> <p>     Una vez arrancado lando nuevamente, si ejecutamos el comando lando info, podremos comprobar que, efectivamente, se ha realizado la modificacion en la versión de PHP que venía por defecto.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 78.88%;" data-ratio="78.88" data-b-token="b-e35a534be95" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal 9 headless Lando | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630377b1b740d.png?itok=JryMPyLv" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="393" height="310" typeof="foaf:Image" /></div></div> <p>    Si quieres saber otro comando que ofrece Lando, por ejemplo, para acceder a tus bases de datos, puedes ejecutar el siguiente comando</p> <pre> lando</pre> <pre> Commandos: lando composer Ejecuta comando de composer lando config Muestra la configuración de lando lando db-export [file] Exporta base de datos hacia un archivo lando db-import &lt;file&gt; Importa un archivo dump dentro de un servicio de base de datos lando destroy Destruye tu aplicación lando drush Ejecuta comandos de drush lando info Imprime en pantalla información de tu aplicación lando init Inicializa el código con lando lando list Muestra el listado de contenedores ejecutándose lando logs Despliega logs para tu aplicación lando mysql Drops into a MySQL shell on a database service lando php Ejecuta comandos PHP lando poweroff Spins down all lando related containers lando rebuild Reconstruye tu aplicación desde el principio, manteniendo los datos lando restart Restaura tu aplicación lando share Comparte tu entorno local lando ssh Drops into a shell on a service, runs commands lando start Arranca tu aplicación lando stop Detiene tu aplicación lando version Muestra la versión de lando</pre> </div> </div> </div> </div> </div> </div> <div class="field field--name-field-categoria-post field--type-entity-reference field--label-above"> <div class="field__label">Categoría</div> <div class="field__items"> <div class="field__item"><a href="/categoria/lando" hreflang="es">lando</a></div> <div class="field__item"><a href="/categoria/servidor" hreflang="es">servidor</a></div> <div class="field__item"><a href="/categoria/server" hreflang="es">server</a></div> <div class="field__item"><a href="/categoria/local" hreflang="es">local</a></div> <div class="field__item"><a href="/categoria/entorno" hreflang="es">entorno</a></div> <div class="field__item"><a href="/categoria/instalacion" hreflang="es">instalacion</a></div> <div class="field__item"><a href="/categoria/sitebuilder" hreflang="es">sitebuilder</a></div> <div class="field__item"><a href="/categoria/multisite" hreflang="es">multisite</a></div> <div class="field__item"><a href="/categoria/multisitio" hreflang="es">multisitio</a></div> <div class="field__item"><a href="/categoria/drupal-9" hreflang="es">drupal 9</a></div> <div class="field__item"><a href="/categoria/drupal-8" hreflang="es">drupal 8</a></div> <div class="field__item"><a href="/categoria/drupal-10" hreflang="es">drupal 10</a></div> </div> </div> Thu, 09 Mar 2023 16:44:58 +0000 webmaster 360 at https://drupaladicto.com Drupal 9 Multisitio con Lando y WSL2 en Windows 11 https://drupaladicto.com/actualidad/drupal-9-multisitio-con-lando-y-wsl2-en-windows-11 <span class="field field--name-title field--type-string field--label-hidden">Drupal 9 Multisitio con Lando y WSL2 en Windows 11</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mar, 07/03/2023 - 11:00</span> <div class="field field--name-field-contenidos-post field--type-entity-reference-revisions field--label-visually_hidden"> <div class="field__label visually-hidden">Contenidos</div> <div class="field__items"> <div class="field__item"> <style>#video-only-1025 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-1025 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-1025 .play-btn { background: radial-gradient(#1fd7d9 50%, rgba(66, 109, 202, 0.4) 52%); }</style> <div class="paragraph paragraph--type--video-only paragraph--view-mode--default" id="vol-1025"> <section id="video-only-1025" class="about area-padding video-block-wrapper"> <div class="col video-box"> <div class="portada"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-07/portada-post.jpg?itok=kSR2Q5ei" class="img-fluid" alt=""> <div class="field field--name-vo-youtube-video field--type-entity-reference field--label-visually_hidden"> <div class="field__label visually-hidden">Video de Youtube</div> <div class="field__item"><article class="media media--type-remote-video media--view-mode-diapositiva-1200x650"> <div class="field field--name-field-media-oembed-video field--type-string field--label-visually_hidden"> <div class="field__label visually-hidden">URL de Video remoto</div> <div class="field__item"><div class="modal micromodal-slide" id="modal-media-729-0-field-media-oembed-video" aria-hidden="true"> <div class="modal__overlay" tabindex="-1" data-micromodal-close> <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-media-729-0-field-media-oembed-video-content"> <a class="modal__btn" data-micromodal-close aria-label="Close this dialog window">X</a> <main class="modal__content" id="modal-media-729-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/PmJSg-kes-8&amp;max_width=0&amp;max_height=0&amp;hash=Cq842PswdIM5HiwiYH0pE2iTLOgjfwoW_VG3t4oCsoI" frameborder="0" allowtransparency="" class="media-oembed-content" title="Time Value of Money"></iframe></div> </main> </div> </div> </div> <div><a class="myButton" data-micromodal-trigger="modal-media-729-0-field-media-oembed-video"><span class="btn play-btn">.</span></a></div> </div> </div> </article> </div> </div> </div> </div> </section> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1135" style="background-color: ;border: solid px;border-color: #096ba0;border-radius: 5px;padding: 10px;"> <div class="clearfix text-formatted field field--name-to-text field--type-text-long field--label-visually_hidden"> <div class="field__label visually-hidden">Texto</div> <div class="field__item"><p><span id="cke_bm_101S" style="display: none;"> </span></p> <h2><strong>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... <a href="https://youtu.be/PmJSg-kes-8" target="_blank">HAZ CLIC AQUI</a></strong></h2> <p>         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.</p> <h2>     Instalar un Drupal 9 Multisitio utilizando Lando en Windows 11 </h2> <h3>        Prerequisitos</h3> <p>           - Tener descargado y configurado lando en tu entorno local. (<a href="https://www.drupaladicto.com/actualidad/instalar-drupal-9-en-ubuntu-2004-con-lando-y-wsl2-en-windows-11">Haz clic aquí para saber cómo</a>)</p> <p>           - Tener descargados los archivos Base de Drupal para la instalación con Lando. (<a href="https://www.drupaladicto.com/actualidad/instalar-drupal-9-en-ubuntu-2004-con-lando-y-wsl2-en-windows-11" target="_blank">Sigue las instrucciones de Instalar Drupal 9 en Ubuntu 20.04 hasta el Paso 1</a>)</p> <h3>     Paso 1 - Configuración del archivo lando.config</h3> <p>        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.</p> <p>        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.</p> <p>        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.</p> <p>        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:</p> <pre> 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 </pre> <h3>     Explicación:</h3> <p>         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.</p> <pre> name: drupal-multi recipe: drupal9 config: webroot: web php: '8.0' composer_version: '2.0.7' via: apache drush: false xdebug: false </pre> <p>     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. </p> <pre> proxy: appserver: - main.lndo.site - sitio1.lndo.site - sitio2.lndo.site </pre> <p>     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:</p> <pre> lando info</pre> <h3>     Paso 2 - Configuración del Drupal principal y los multisitios</h3> <p>        Llegados a este punto, antes de arrancar nuestro proyecto de Drupal, tendremos que hacer varios ajustes:</p> <p>     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.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 41.87%;" data-ratio="41.87" data-b-token="b-bfc833633fa" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-62fcfaa387083.png?itok=oHe6oG2l" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="504" height="211" typeof="foaf:Image" /></div></div> <p>     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.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 66.8%;" data-ratio="66.8" data-b-token="b-852517537c5" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-62fcfae1d2bb1.png?itok=9hgZYSUZ" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="259" height="173" typeof="foaf:Image" /></div></div> <p>     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.<br /> 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. </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 57.14%;" data-ratio="57.14" data-b-token="b-12455fcf322" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-62fcfb0ac57ac.png?itok=cUE0-24v" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="280" height="160" typeof="foaf:Image" /></div></div> <h3>      Arrancando los Multisitios Drupal 9</h3> <p>        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:</p> <pre> lando start lando composer install lando rebuild lando info</pre> <p>     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.</p> <p>     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.</p> <p>     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.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 44.77%;" data-ratio="44.77" data-b-token="b-bd265e38856" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-62fcfb339acb8.png?itok=OS2fMwp7" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="291" typeof="foaf:Image" /></div></div> <p>     El comando "lando info", nos servirá para confirmar los datos de acceso a las bases de datos, con sus respectivos usuarios y contraseñas. </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 66.92%;" data-ratio="66.92" data-b-token="b-2ba410d947f" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-62fcfb5655c9c.png?itok=JZsR4Ln3" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="435" typeof="foaf:Image" /></div></div> <p>     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".</p> <p>     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.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 20.71%;" data-ratio="20.71" data-b-token="b-39511eec489" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-62fcfb886fddd.png?itok=tcGHhmiL" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="618" height="128" typeof="foaf:Image" /></div></div> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 89.08%;" data-ratio="89.08" data-b-token="b-68ce267cbe6" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Drupal Lando Multisite | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-62fcfb9d095ab.png?itok=cNHSrg9b" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="412" height="367" typeof="foaf:Image" /></div></div> </div> </div> </div> </div> </div> </div> <div class="field field--name-field-categoria-post field--type-entity-reference field--label-above"> <div class="field__label">Categoría</div> <div class="field__items"> <div class="field__item"><a href="/categoria/multisite" hreflang="es">multisite</a></div> <div class="field__item"><a href="/categoria/multisitio" hreflang="es">multisitio</a></div> <div class="field__item"><a href="/categoria/lando" hreflang="es">lando</a></div> <div class="field__item"><a href="/categoria/servidor" hreflang="es">servidor</a></div> <div class="field__item"><a href="/categoria/server" hreflang="es">server</a></div> <div class="field__item"><a href="/categoria/desarrollo" hreflang="es">desarrollo</a></div> <div class="field__item"><a href="/categoria/local" hreflang="es">local</a></div> <div class="field__item"><a href="/categoria/entorno" hreflang="es">entorno</a></div> <div class="field__item"><a href="/categoria/development" hreflang="es">development</a></div> </div> </div> Tue, 07 Mar 2023 10:00:05 +0000 webmaster 237 at https://drupaladicto.com Cómo ejecutar Docker-CE en WSL2 - Running Docker-CE in WSL2 https://drupaladicto.com/snippet/como-ejecutar-docker-ce-en-wsl2-running-docker-ce-wsl2 <span class="field field--name-title field--type-string field--label-hidden">Cómo ejecutar Docker-CE en WSL2 - Running Docker-CE in WSL2</span> <div class="clearfix text-formatted field field--name-field-snippet-descripcion field--type-text-long field--label-above"> <div class="field__label">Descripción</div> <div class="field__item"><p>Cuando trabajamos con Lando, utilizando el Subsitema de Windows (WSL2), uno de los requerimientos que nos encontraremos es el de instalar el Docker-CE, como parte del proceso.</p> <p>Para evitar econtrarnos con el error durante la instalación de Lando, vamos a descargar y activar Docker-CE antes de proceder con la instalación de Lando.</p> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mié, 01/03/2023 - 09:19</span> <div class="clearfix text-formatted field field--name-field-codigo field--type-text-long field--label-hidden field__item"><p>Para descargar Docker-CE en nuestro entorno Ubuntu 20.04 con WSL2:</p> <ol><li>Añadiremos el repositorio de confianza con el siguiente código:<br /><br /> sudo add-apt-repository "deb [arch=amd64] <a href="https://download.docker.com/linux/ubuntu">https://download.docker.com/linux/ubuntu</a> $(lsb_release -cs) stable"<br />  </li> <li>Descargaremos Docker-CE con el siguiente comando:<br /><br /> sudo apt-get install docker-ce<br />  </li> <li>Añadiremos Docker al grupo sudo:<br /><br /> sudo gpasswd -a $USER docker<br />  </li> <li>Hacemos una prueba de que todo funciona correctamente arrancando el servicio de Docker:<br /><br /> sudo service docker start<br />  </li> <li>Ejecutaremos un ejemplo:<br /><br /> docker run hello-world</li> </ol></div> <div class="field field--name-field-snippet-paginador field--type-image field--label-above"> <div class="field__label">Paginador</div> <div class="field__item"> <img src="/sites/default/files/imagenes/snippets/snippet-pager_79.png" width="100" height="100" alt="Snippet | www.drupaladicto.com - Consultores especializados en Drupal y Symfony" title="Snippet | www.drupaladicto.com - Consultores especializados en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> <div class="field field--name-field-categoria-snippet field--type-entity-reference field--label-above"> <div class="field__label">Categoría</div> <div class="field__items"> <div class="field__item"><a href="/categoria/docker" hreflang="es">docker</a></div> <div class="field__item"><a href="/categoria/lando" hreflang="es">lando</a></div> <div class="field__item"><a href="/categoria/container" hreflang="es">container</a></div> <div class="field__item"><a href="/categoria/contenedores" hreflang="es">contenedores</a></div> <div class="field__item"><a href="/categoria/envirotment" hreflang="es">envirotment</a></div> <div class="field__item"><a href="/categoria/virtualizacion" hreflang="es">virtualización</a></div> </div> </div> <div class="field field--name-field-portada-snippet field--type-entity-reference field--label-above"> <div class="field__label">Portada</div> <div class="field__item"><article class="media media--type-imagen media--view-mode-default"> </article> </div> </div> Wed, 01 Mar 2023 08:19:27 +0000 webmaster 104 at https://drupaladicto.com The metadata storage is not up to date, please run the sync-metadata-storage command to fix this issue https://drupaladicto.com/snippet/metadata-storage-not-date-please-run-sync-metadata-storage-command-fix-issue <span class="field field--name-title field--type-string field--label-hidden">The metadata storage is not up to date, please run the sync-metadata-storage command to fix this issue</span> <div class="clearfix text-formatted field field--name-field-snippet-descripcion field--type-text-long field--label-above"> <div class="field__label">Descripción</div> <div class="field__item"><p>A partir de la versión 5 de Symfony, cuando utilizamos el motor de base de datos con MariaDB, nos encontraremos con un error de actualización de datos, generalemente después de ejecutar los comandos para generar las entidades (console make:entity / console doctrine:migrations:migrate). Para corregir el error sigue los siguientes pasos.</p> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mar, 28/02/2023 - 20:14</span> <div class="clearfix text-formatted field field--name-field-instrucciones field--type-text-long field--label-above"> <div class="field__label">Instrucciones</div> <div class="field__item"><article about="/snippet/metadata-storage-not-date-please-run-sync-metadata-storage-command-fix-issue" data-history-node-id="305" role="article"><p>Desde la consola, ejecuta el siguiente comando:</p> <pre> php bin/console doctrine:migrations:sync-metadata-storage</pre> <ol><li>Edita la línea relacionada con tu conexión a la base de datos, dentro de tu archivo <strong>.env</strong>, para que tenga el siguiente aspecto: <p><em>   Lo que tendrás será parecido a la siguiente línea:</em></p> <pre> DATABASE_URL="mysql://username:password@127.0.0.1:3306/db_name?serverVersion=5.7"</pre> <p><em>Deberás cambiarlo haciendo la actualización al final, con el nombre de mariadb y su versión correspondiente.</em></p> <pre> DATABASE_URL="mysql://username:password@127.0.0.1:3306/db_name?serverVersion=mariadb-10.4.21"</pre> </li> <li></li> </ol></article></div> </div> <div class="field field--name-field-snippet-paginador field--type-image field--label-above"> <div class="field__label">Paginador</div> <div class="field__item"> <img src="/sites/default/files/imagenes/snippets/snippet-pager_14.png" width="100" height="100" alt="Snippet | www.drupaladicto.com - Consultores especializados en Drupal y Symfony" title="Snippet | www.drupaladicto.com - Consultores especializados en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> <div class="field field--name-field-categoria-snippet field--type-entity-reference field--label-above"> <div class="field__label">Categoría</div> <div class="field__items"> <div class="field__item"><a href="/categoria/mariadb" hreflang="es">mariadb</a></div> <div class="field__item"><a href="/categoria/base-de-datos" hreflang="es">base de datos</a></div> <div class="field__item"><a href="/categoria/database" hreflang="es">database</a></div> <div class="field__item"><a href="/categoria/mysql" hreflang="es">mysql</a></div> <div class="field__item"><a href="/categoria/lando" hreflang="es">lando</a></div> <div class="field__item"><a href="/categoria/symfony" hreflang="es">symfony</a></div> <div class="field__item"><a href="/categoria/phpmyadmin" hreflang="es">phpmyadmin</a></div> </div> </div> <div class="field field--name-field-portada-snippet field--type-entity-reference field--label-above"> <div class="field__label">Portada</div> <div class="field__item"><article class="media media--type-imagen media--view-mode-default"> </article> </div> </div> Tue, 28 Feb 2023 19:14:20 +0000 webmaster 39 at https://drupaladicto.com