local https://drupaladicto.com/ es Cómo eliminar completamente Node.js y NVM en Ubuntu https://drupaladicto.com/snippet/como-eliminar-completamente-nodejs-y-nvm-en-ubuntu <span class="field field--name-title field--type-string field--label-hidden">Cómo eliminar completamente Node.js y NVM en Ubuntu</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">En algunas ocasiones, tenemos la necesidad de eliminar por completo versiones anteriores de node.js en nuestro entorno de desarrollo.</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é, 06/11/2024 - 18:37</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"><p>Ejecutar los siguientes comando en la consola:</p> <pre> sudo apt-get remove nodejs sudo apt-get remove npm</pre> <p>Después nos movermos a <code>/etc/apt/sources.list.d</code> y borraremos de la lista cualquier referencia a node.</p> <p>A continuación ejecutaremos:</p> <pre> <code>sudo apt-get update</code></pre> <p>Y para asegurarnos de que no hemos dejado nada, ejecutaremos:</p> <pre> <code>which node </code> which nodejs which nodejs</pre> </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/default_images/snippet-pager.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/node" hreflang="es">node</a></div> <div class="field__item"><a href="/categoria/local" hreflang="es">local</a></div> <div class="field__item"><a href="/categoria/envirotment" hreflang="es">envirotment</a></div> <div class="field__item"><a href="/categoria/frontend" hreflang="es">frontend</a></div> <div class="field__item"><a href="/categoria/desarrollo" hreflang="es">desarrollo</a></div> <div class="field__item"><a href="/categoria/desacoplado" hreflang="es">desacoplado</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, 06 Nov 2024 17:37:24 +0000 webmaster 480 at https://drupaladicto.com Drupal con Docker | Configuración entorno local https://drupaladicto.com/curso/drupal-con-symfony/drupal-con-docker-configuracion-entorno-local <span class="field field--name-title field--type-string field--label-hidden">Drupal con Docker | Configuración entorno local</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-1303 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-1303 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-1303 .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-1303"> <section id="video-only-1303" 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-08/portada-drupal-symfony.png?itok=VjHrzo7E" 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-775-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-775-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-775-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/3Y_IHAQit2Y&amp;max_width=0&amp;max_height=0&amp;hash=tAQFOSq2PK1yo2jv9nhsK1K0cgCqIq-ov587ujQAovk" 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-775-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-1274" 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 haz decidido dedicarte profesionalmente al desarrollo de aplicaciones web, lo ideal es que comiences a experimentar con las herramientas y opciones más actuales que existen en el mercado. Una de mis recomendaciones es el uso de contenedores Docker, que nos permitirá configurar, replicar y/o compartir, entornos de trabajo, evitando los históricos fallos de versión del lenguaje, o del servidor con el que estemos trabajando en nuestros proyectos.</p> <p>En el caso de Drupal, no basta con añadir un archivo Dockerfile, para contar con todos los requerimientos necesarios, pero ya existen varias alternativas disponibles, facilitándonos esa parte del proceso. Una de ellas es la conocida como <a href="https://github.com/wodby/docker4drupal">Docker4Drupal</a>, cuyo mantenimiento continuo y permanente, nos permite realizar las instalaciones de Drupal, en cada nueva versión publicada.</p> <p>Docker4Drupal, tiene múltiples funcionalidades, que podremos activar, personalizar y utilizar, dependiendo de las necesidades del proyecto, como son el administrador de base de datos <strong>Adminer</strong>, <strong>Xdebug</strong>, servidor para correos locales <strong>Mailhog</strong>, servidor de base de datos <strong>Postgres, </strong>servidor <strong>Apache Solr</strong>, entre otros.</p> <p>Además de utilizar las variables de entorno, que nos pueden servir para realizar comprobaciones sobre el comportamiento de nuestras aplicaciones, sin la necesidad de realizar despliegues en otros entornos adicionales a nuestro local.</p> <p>Aunque no profundizaremos en todas las opciones y configuraciones disponibles con Docker4Drupal, te animo a que visites su página oficial <a href="https://github.com/wodby/docker4drupal">https://github.com/wodby/docker4drupal </a>y eches un vistazo a su documentación, para que conozcas un poco más acerca de todo lo que tiene para ofrecernos.</p> </div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--image-only paragraph--view-mode--default" id="imgly-1278"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-08/22.png?itok=TFqB7BF1" class="img-fluid" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="" style="" > </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1279" 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>   Cómo instalar un entorno local con Docker4Drupal</h2> <h3>     Requisitos:</h3> <p>          - Entorno Linux: Yo he utilizado el subsistema WSL2, con Ubuntu 2204, dentro de una máquina Windows 11. <a class="btn btn-lite" href="https://drupaladicto.com/curso/entornos-locales/lamp-server-instalacion-con-wsl2-en-windows-10-1era-parte" target="_blank">HAZ CLIC AQUI</a></p> <p>          - Docker Desktop: Para las instrucciones desde su página oficial. <a class="btn btn-lite" href="https://www.docker.com/products/docker-desktop/" target="_blank">HAZ CLIC AQUI</a></p> <p>     Para este curso, utilizaremos Docker4Drupal, dentro de un entorno Linux (Ubuntu 2204), con WSL2 y Windows 11, de esta manera no tendremos que configurar máquinas virtuales adicionales, que podrían consumir muchos más recursos de los necesarios en nuestra máquina. Aunque si lo deseas, también puedes aplicar los mismos pasos en la distribución de Linux que prefieras.</p> <p>     Si quieres reproducir exactamente los ejercicios que vamos a detallar en este curso, sólo necesitarás descargar y configurar DockerDesktop y WSL2 en tu ordenador y a continuación, abrir la consola para continuar con el resto de la instalación que verás en el video.</p> </div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--image-only paragraph--view-mode--default" id="imgly-1280"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-08/docker-desktop.png?itok=oT2ZymRj" class="img-fluid" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="" style="" > </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1281" 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"><h3>   Descarga y configuración del Docker4Drupal</h3> <p>      Ahora que ya tienes configurado el entorno Linux donde vas a trabajar, abriremos nuestra consola y nos colocaremos en la ubicación donde instalaremos nuestro Drupal 10, a continuación, abriremos la url del respositorio de Docker4Drupal y lo clonaremos, para comenzar con la descarga de los archivos que vamos a necesitar.</p> <p>     Si quieres, puedes aprovechar el proceso de clonación para configurar el nombre de tu carpeta, al mismo tiempo que realiza la descarga, para ello, tendrás que añadir una línea como la siguiente:</p> <pre> git clone https://github.com/wodby/docker4drupal.git/ drupal_10</pre> <p>     Esto creará la carpeta con el nombre drupal_10 en la ubicación que hayas seleccionado y dentro de ella colocará todos los archivos descargados desde el repositorio, donde podremos continuar con otros cambios necesarios, antes de descargar el esqueleto o estructura principal de nuestro proyecto de Drupal.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 23.24%;" data-ratio="23.24" data-b-token="b-d6e47d5792b" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="19aaafda-7a76-49bc-aba8-93dc3115378b" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/clonar-proyecto.jpg?itok=y654Zp3y" 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="921" height="214" typeof="foaf:Image" /></div></div> </div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1283" 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"><h3>   Configuración inicial del servidor</h3> <p>     Una vez terminada la descarga de los archivos para nuestro servidor, el siguiente paso será la personalización de algunas opciones, para que podamos descargar, arrancar y acceder a nuestro proyecto de Drupal, que descargaremos, una vez terminados estos primeros cambios.</p> <p>     Así que, con nuestro IDE favorito, abriremos la carpeta donde hemos descargado los archivos del repositorio, para comenzar con las primeras configuraciones.</p> <h4>   Paso 1 - Eliminar <strong>docker-compose.override.yml</strong></h4> <p>     Eliminaremos el archivo <strong>docker-compose.override.yml</strong>, para que podamos controlar el comportamiento del servidor a través de la configuración en la variable de entorno.</p> <h4>   Paso 2 - Ajustes en la variable de entorno.</h4> <p>     Por el momento, el archivo que necesitamos conocer y ajustar es el responsable de nuestro entorno de trabajo, conocido como <strong>.env</strong>, donde podremos personalizar los siguientes detalles:</p> <h3>    Nombre del proyecto, url y puerto de conexión</h3> <ul><li>Nombre del proyecto: PROJECT_NAME=<strong>my_drupal10_project</strong></li> <li>Url del proyecto: PROJECT_BASE_URL=<strong>drupal.docker.localhost </strong></li> <li>El puerto de conexión: PROJECT_PORT=<strong>8000</strong></li> </ul><p>    Cuando hayamos realizado el cambio en la url del proyecto y el puerto, podremos acceder a nuestro Drupal, una vez descargado, escribiendo en el navegador </p> <p><strong>http://drupal.docker.localhost:8000</strong></p> <h3>   Nombre de usuario, base de datos y contraseña</h3> <ul><li>Nombre de la base de datos:<strong> </strong>DB_NAME=<strong>drupal</strong><strong> </strong></li> <li>Nombre del usuario para la base de datos: DB_USER=<strong>drupal</strong><strong> </strong></li> <li>Contraseña del usuario de base de datos:<strong> </strong>DB_PASSWORD=<strong>drupal</strong><strong>    </strong></li> </ul></div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1286" 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>   Arrancando nuestros contenedores Docker</h2> <p>     Un servidor basado Docker que ejecuta varios contenedores, conectados entre sí, que permiten ejecutar nuestro código sin la necesidad de instalar ningún archivo extra en nuestra máquina, esto es lo que se conoce como virtualización del entorno.</p> <p>     En otra palabras, en lugar de arrancar un servidor tipo XAMPP, con todo incluido y administrable desde un panel de control, como hacíamos años atrás, con Docker, tendremos varios servicios independientes, que podremos modificar y/o ajustar, según nuestras necesidades. </p> <p>     Si exploras un poco más, dentro del archivo .env, que modificamos hace un momento, podrás comprobar que tienes varias opciones de versión y configuración, que podrás activar o desacticar, añadiendo o quitando, el símbolo de almohadilla (#), que acompaña cada una de las definiciones:</p> <pre> ### --- MARIADB ---- MARIADB_TAG=10.11-3.26.3 #MARIADB_TAG=11.0-3.26.3 #MARIADB_TAG=10.10-3.26.3 #MARIADB_TAG=10.9-3.26.3 #MARIADB_TAG=10.6-3.26.3 #MARIADB_TAG=10.5-3.26.3 #MARIADB_TAG=10.4-3.26.3 ### --- VANILLA DRUPAL ---- DRUPAL_TAG=10-4.58.1 #DRUPAL_TAG=9-4.58.1 #DRUPAL_TAG=7-4.58.1 ### --- PHP ---- # Linux (uid 1000 gid 1000) PHP_TAG=8.2-dev-4.47.1 #PHP_TAG=8.1-dev-4.47.1 #PHP_TAG=8.0-dev-4.47.1</pre> </div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>Para arrancar nuestros contenedores, tenemos dos opciones:</p> <pre> docker compose up -d</pre> <p>O también puedes utilizar el paquete Make, que viene por defecto instalado con la distribución de Ubuntu, en este caso el comando para arrancar los contenedores sería:</p> <pre> make up</pre> <p>Una vez ejecutado cualquiera de los anteriores comandos, si todo va bien, deberías ver en tu consola, algo parecido a la siguiente imagen:</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 29.06%;" data-ratio="29.06" data-b-token="b-f75ffe52deb" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="871233d4-e8e0-465e-be4e-36fafb095931" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/contenedores.png?itok=t0NoLhZt" 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="912" height="265" typeof="foaf:Image" /></div></div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2>   Descargando Drupal en nuestro servidor con Docker</h2> <p>     Gracias a que hemos eliminado previamente, el archivo <strong>docker-compose.override.yml, </strong>que reescribe la configuración de nuestros contenedores, podremos descargar el esqueleto de un proyecto Drupal 10, en este caso, para colocarlo dentro de nuestra carpeta del rood y así tener todos los archivos listos, por si en un futuro queremos compartir nuestro código, con otros miembros del equipo o trasladarlo a otra máquina.</p> <h3>   Pasos para descargar el Esqueleto de Drupal</h3> <h4>       Paso 1 - Acceder al contenedor PHP</h4> <p>          A partir de Drupal 8, es recomendable utilizar el gestor de paquetes Composer, para garantizar la descarga total de las dependencias y facilitar las tareas de actualización y/o mantenimiento de Drupal, una vez esté en funcionamiento.</p> <p>          Composer está disponible dentro del contenedor encargado de ejecutar PHP, así que primero comprobaremos los nombres de todos los contenedores y luego accederemos al contenedor de PHP. Para conocer los contenedores que tenemos funcionando actualmente, ejecutaremos el siguiente comando en la consola:</p> <pre> docker ps</pre> <p>        Esto nos debería devolver el listado con todos los contenedores que estén en funcionamiento:</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 15.07%;" data-ratio="15.07" data-b-token="b-f5466f94d3b" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="448dc6f1-f6c6-4083-9363-cde926d0ac92" class="img-fluid media__element b-lazy b-filter" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/lista-contenedores.png?itok=pPpqqEXh" 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="1254" height="189" typeof="foaf:Image" /></div></div> <p> </p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>En nuestro caso, el contenedor de php se llama <strong>my_drupal10_project_php</strong>, para acceder dentro del contenedor y poder ejecutar el comando composer, escribiremos lo siguiente en la consola:</p> <pre> docker exec -it my_drupal10_project_php bash</pre> <p>Esto nos colocará dentro de la carpeta ROOT del servidor:</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 6.7%;" data-ratio="6.7" data-b-token="b-3f50cbc8aef" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="7f5b8585-b715-4479-9482-7d9af909a62f" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/dentro-de-php.png?itok=MJcsQfxc" 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="955" height="64" typeof="foaf:Image" /></div></div> <p>A continuación, podremos descargar el esqueleto de Drupal 10, añadiendo el siguiente comando:</p> <pre> composer create-project drupal/recommended-project vaciar</pre> <p>Este comando descargará todos los arhivos necesarios para una instalación de Drupal 10, dentro de la carpeta que yo he llamado <strong>VACIAR</strong>, para que recordemos que no debemos dejar nada dentro una vez termine la descarga.</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-c0e9aebd315" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="7262cc31-b651-43ef-8374-24d7c1dd921b" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/nueva-vaciar.png?itok=IXHqbS7v" 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="921" height="425" typeof="foaf:Image" /></div></div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2>   Añadiendo archivos no deseados al .gitignore</h2> <p>     Antes de sacar los archivos de la carpeta VACIAR, para evitar que se suban por error, cualquiera de los archivos de Docker, que sólo deberían estar en nuestro servidor local, tendremos que añadir esos archivos al .gitignore que nos viene por defecto al descargar Docker4Drupal, así que, lo abriremos con nuestro editor, y a continuación, añadiremos todos los archivos correspondientes a Docker y sus contenedores:</p> <p>     El archivo .gitignore, quedaría de la siguiente manera, con nuestros cambios añadidos:</p> <pre> .idea/ mutagen.yml.lock .vscode #ignoramos los archivos de Docker y el servidor tests .dockerignore .env docker-compose.yml docker.mk LICENSE.md Makefile README.md traefik.yml</pre> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 38.19%;" data-ratio="38.19" data-b-token="b-b70aa16e775" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="695da0f5-1f80-4c44-b781-a2f70ea0c511" class="img-fluid media__element b-lazy b-filter" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/gitignore.png?itok=rK4Y1xDo" 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="1050" height="401" typeof="foaf:Image" /></div></div> <p> </p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2>   Moviendo los archivos de Drupal a la raiz del  servidor</h2> <p>      Ya que tenemos configurado el archivo .gitignore, procederemos a extraer todos los archivos de la carpeta vaciar, para colocarlos en la carpeta raíz de nuestro servidor y de esta forma iniciar el proceso de instalación del Drupal. Para ello, no hace falta que estemos dentro del contenedor:</p> <pre> mv vaciar/* .</pre> <pre> mv vaciar/.* .</pre> <p>     Con esto, quedarán fuera de la carpeta vaciar, todos los archivos de Drupal y a continuación, podremos eliminar la carpeta.</p> <pre> sudo rm -rf vaciar</pre> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 18.46%;" data-ratio="18.46" data-b-token="b-31a8f08021f" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="e6129d5e-ac3e-45b1-a33b-78986ff6e0a5" class="img-fluid media__element b-lazy b-filter" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/vaciar-carpeta.png?itok=TWeGzHEN" 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="1002" height="185" typeof="foaf:Image" /></div></div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2>   Arrancando el instalador de Drupal</h2> <p>     Ahora que ya hemos colocado todos los archivos necesarios para instalar Drupal, podremos proceder con el instalador, pero antes, para estar seguros de que tenemos todo actualizado a la versión más reciente disponible, ejecutaremos el comando update de Composer, desde nuestro contenedor php:</p> <p>composer update</p> <p>     El resultado, debería ser algo parecido a la siguiente imagen:</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 56.88%;" data-ratio="56.88" data-b-token="b-9138869be4d" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="9018df60-2f74-4ba2-bcd6-200c573c09f0" class="img-fluid media__element b-lazy b-filter" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/update-composer.png?itok=S8hqIRNs" 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="1104" height="628" typeof="foaf:Image" /></div></div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Para comprobar que podremos instalar nuestro Drupal 10, abriremos el navegador y escribiremos los datos que constan en la variable de entorno, y que explicamos al principio de este ejercicio, si no has cambiado ninguno de los valores por defecto, deberías escribir esto en tu navegador :</p> <pre> http://drupal.docker.localhost:8000/</pre> <p>     El resultado, será que se pondrá en marcha el instalador de Drupal 10.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 48.92%;" data-ratio="48.92" data-b-token="b-5cb8db9114e" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="6de7be6a-5d5a-4fc3-8b4a-33ffa1b5316a" class="img-fluid media__element b-lazy b-filter" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/instalador-drupal.png?itok=hj5kQL-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="1300" height="636" typeof="foaf:Image" /></div></div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2>   Proceso de instalación</h2> <p>     Al hacer clic en la primera pantalla del instalador, es posible que nos encontremos con algunos mensajes, relacionados con archivos que nos faltan por descargar, crear o configurar. El primero de ellos, en mi caso es una alerta que me advierte de la ausencia de la carpeta <em>translations, encargada de alojar los archivos relacionados con las traducciones de Drupal, ya que nuestra instalación será en Español. </em></p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 80.94%;" data-ratio="80.94" data-b-token="b-d33229828b0" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="e463a2a7-a784-4239-adab-ae72fc3ba3ab" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/error-translations.png?itok=AumuRzvC" 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="1128" height="913" typeof="foaf:Image" /></div></div> <p><em>     Para corregir el error, creaemos la carpeta <strong>files</strong>, dentro de la ubicación: <strong>web/sites/default/</strong>, y acontinuación, daremos permisos de escritura a la carpeta <strong>files</strong></em>...</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 14.87%;" data-ratio="14.87" data-b-token="b-93cff4d3dc1" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="ebe6e277-c990-401d-b8a3-19400951a933" alt="Docker Drupal | 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/carpeta-files.png?itok=esMRlnw_" 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="948" height="141" typeof="foaf:Image" /></div></div> <p>     Si volvemos al navegador y refrescamos, veremos que nos deja continuar con el proceso de instalación, hasta la siguiente pantalla:</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 48.92%;" data-ratio="48.92" data-b-token="b-05696e67cd4" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="890b63a6-6e03-4ae9-b106-04fd65394d00" class="img-fluid media__element b-lazy b-filter" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/seleccionar-perfil.png?itok=ViAOKHt3" 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="1300" height="636" typeof="foaf:Image" /></div></div> <p> </p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Al hacer clic en el botón Guardar y continuar, nos encontraremos con otro mensaje de alerta: </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 64.69%;" data-ratio="64.69" data-b-token="b-870a4865ca4" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="77f70c55-cacc-4987-8b61-2a067a85c56a" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/settings-error.png?itok=uxmGnPwg" 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="1045" height="676" typeof="foaf:Image" /></div></div> <p>     El instalador Drupal <strong>necesita que se cree un archivo <em>./sites/default/settings.php</em></strong> como parte del proceso de instalación. Así que simplemente, seguiremos las instrucciones, copiaremos el archivo <strong>default.settings.php</strong> y lo renombraremos a<strong> <em>settings.php</em></strong>, asegurándonos de otorgarle permisos de escritura, que serán necesarios durante el resto de la instalación, para que Drupal pueda configurar los datos de acceso a la base de datos y la carpeta para la sincronización.</p> <pre> cp web/sites/default/default.settings.php web/sites/default/settings.php chmod -R 777 web/sites/default/settings.php</pre> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Esta vez, cuando hayamos refrescado el navegador, veremos la pantalla donde tendremos que añadir los datos de acceso a la base de datos, que son los que podremos confirmar en nuestra variable de entorno <strong>.env</strong>, es muy importate que en lugar de dejar<strong> localhost</strong>, cambiemos el servidor de la base de datos por<strong> mariadb</strong>, o nos devolverá un error de permisos.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 80.02%;" data-ratio="80.02" data-b-token="b-ac58e67c646" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="f66dec36-65f6-4a40-ba37-3788bb027421" class="img-fluid media__element b-lazy b-filter" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/configuracion-final.png?itok=R58HSuhm" 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="921" height="737" typeof="foaf:Image" /></div></div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 59.08%;" data-ratio="59.08" data-b-token="b-30cb3c62f19" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="3030ec4b-8144-4020-850d-60d5344b0aba" alt="Docker Drupal | 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/traducciones_0.png?itok=SA23YQTR" 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="1178" height="696" typeof="foaf:Image" /></div></div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Tan pronto como se terminen de descargar las traducciones, debido a que nuestra instalación es en Español, veremos la pantalla final, donde debemos rellenar los detalles del usuario administrador, el correo electrónico que utilizará Drupal, para comunicarse con los usuarios que interactuén, el lenguaje, horario y pais... </p> <p>     Rellenaremos todo, presionaremos el botón continuar, y por fin, hemos terminado el proceso completo de instalación de un proyecto Drupal 10, con Docker.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 83.51%;" data-ratio="83.51" data-b-token="b-eef83da31db" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="38b17023-2ce1-4fb8-8a03-95f9436f0f7c" class="img-fluid media__element b-lazy b-filter" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/casi-final.png?itok=-QprPJBU" 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="1055" height="881" typeof="foaf:Image" /></div></div> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Ahora ya podremos comenzar a trabajar con nuestro Drupal.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 56.38%;" data-ratio="56.38" data-b-token="b-6b5a61210b8" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="15a4c945-ef6e-489b-9ae6-845c6a44643b" class="img-fluid media__element b-lazy b-filter" alt="Docker Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/bienvenida10.png?itok=nMF2sEgo" 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="1300" height="733" typeof="foaf:Image" /></div></div> <p> </p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2>   Añadiendo archivos al repositorio</h2> <p>     Como hemos comentado al principio, por lo general, cuando estás trabajando con algún proyecto de desarrollo, en algún momento tendrás que realizar el despliegue al entorno de producción, por lo cual es muy recomendable, que desde el principio, te acostumbres a trabajar con un repositorio, añadiendo y comiteando tus cambios, a medida que vayas avanzando en el proceso.</p> <p>     Para evitar que se añadan archivos innecesarios de Drupal, como vendor o files, actualizaremos el archivo .gitignore, antes de realizar nuestro primer commit.</p> <p>     Accede a este enlace y copia todo su contenido, justo debajo de nuestros últimos cambios en el <strong>.gitignore</strong>:</p> <p>     <a href="https://drupaladicto.com/snippet/git-ignore-para-drupal">https://drupaladicto.com/snippet/git-ignore-para-drupal</a></p> <p>     Una vez actualizado tu archivo, podemos añadir y comentar nuestros cambios:</p> <pre> git init git add . git commit -m "Archivos base para instalar Drupal 10"</pre> <p>     Así nos aseguramos de que, al ejecutar el comando de subida a nuestro repositorio, <strong>git pull</strong>, sólo subamos lo necesario para no ocupar espacio innecesario en nuestro repositorio final.</p> </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">Lun, 28/08/2023 - 17:57</span> Mon, 28 Aug 2023 15:57:09 +0000 webmaster 454 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 Docker for Drupal | Importar proyecto existente https://drupaladicto.com/curso/entornos-locales/docker-drupal-importar-proyecto-existente <span class="field field--name-title field--type-string field--label-hidden">Docker for Drupal | Importar proyecto existente</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-874 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-874 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-874 .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-874"> <section id="video-only-874" 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-594-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-594-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-594-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/w-xb55iUKkg&amp;max_width=0&amp;max_height=0&amp;hash=QKMppvHS30J8GFtO-KJvYtW5HgNLuyXcSADWM5vCT3A" 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-594-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-1156" 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><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 48.45%;" data-ratio="48.45" data-b-token="b-1fcbee1b6fc" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="6e78e462-f431-4d4c-ba13-4888fb6977b1" alt="Docker for Drupal | 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/docker-for-drupal-portada.png?itok=5OK9TMIp" 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="1063" height="515" typeof="foaf:Image" /></div></div> </h2> <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/w-xb55iUKkg" target="_blank">HAZ CLIC AQUI</a></strong></h2> <p>     Si estás trabajando con Drupal, en muchas ocasiones te verás en la necesidad de instalar y poner en marcha, en tu entorno local, proyectos que han sido creados previamente por otros desarrolladores o miembros de tu equipo de trabajo, para que puedas realizar la implementación de algunos cambios, analizar el código del código o simplemente realizar tareas de testing en un entorno seguro.</p> <p>     Tienes disponibles varios métodos de configuración para entornos locales <a href="https://www.drupaladicto.com/trabajando-con-servidores-locales">HACIENDO CLIC AQUÍ</a></p> <p>     Hoy te quiero mostrar, cómo trabajar en tu entorno local, basándonos en contenedores Docker y un proyecto existente de Drupal 9, para que puedas entender todos los pasos necesarios y activar cualquier proyectos sin la necesidad de invertir demasiado tiempo en el proceso.</p> <h2>   Activar un proyecto Drupal 9 existente utilizando Docker for Drupal</h2> <h3>     Requisitos:</h3> <p>        - Tener instalado Docker y Docker compose en tu entorno local. <a href="https://docs.docker.com/desktop/install/mac-install/">HAZ CLIC AQUI</a></p> <p>        - Tener los archivos del proyecto Drupal con el que vas a trabajar. Para descargar la estructura base vacía <a href="https://github.com/drupal-composer/drupal-project" target="_blank">HAZ CLIC AQUÍ</a></p> <p>        - Tener la base de datos del proyecto Drupal con el vas a trabajar</p> <p> </p> <h3>     Paso 1 - Descargar archivos servidor</h3> <p>     Antes de poder comenzar con el proceso de instalación del proyecto Drupal, necesitaremos poder ejecutar código PHP, acceder a nuestra base de datos por medio de Mysql y acceder a un servidor Apache o NGNIX.</p> <p>     La buena noticia, es que exite un repositorio, en el que podremos encontrar todo lo necesario, se llama DockerForDrupal, desarrollado por el equipo de Wodby.</p> <p>     Así que abriremos nuestra consola y, a continuación, clonaremos el respositorio, para tener disponibles todos los archivos:</p> <pre> git clone https://github.com/wodby/docker4drupal.git/ server</pre> <p>     Esto descargará todos los archivos en la carpeta server, y de esta manera, podremos copiar los archivos necesarios para cualquier proyecto de Drupal, sin la necesidad de tener que descargarlos nuevamente en el futuro.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 27.33%;" data-ratio="27.33" data-b-token="b-02eb8e6d2e3" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Docker for Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Docker for Drupal | 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-635c56d557757.jpg?itok=_jmZ_y1J" 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="1200" height="328" typeof="foaf:Image" /></div></div> <p>     Para que no tengamos ningún tipo de conflicto, una vez copiemos los archivos necesarios en cualquier proyecto de Drupal, eliminaremos el directorio <strong>.git </strong>y el archivo <strong>docker-compose.override.yml</strong></p> <p><strong>     </strong>Así que nos colocaremos dentro de la carpeta server y a continuación, ejecutaremos los siguientes comandos en nuestra consola:</p> <pre> sudo rm -rf .git</pre> <pre> sudo rm -f docker-compose.override.yml</pre> <p>     Con estos dos comandos habremos eliminado cualquier posibilidad de conflicto en el futuro.</p> <h3>     Paso 2 - Copiar los archivos desde el servidor hacia Drupal</h3> <p>     En este punto, lo próximo que necesitaremos realizar el la copia de todos los archivos ubicados en la carpeta server, hacia la carpeta raíz del nuestro proyecto Drupal, puedes hacerlo por consola o desde el explorador de archivos de windows, arrastrándolos.</p> <pre> sudo cp -R server/ drupal9</pre> <h3>     Paso 3 - Ajuste de configuración en el archivo .env</h3> <p>     Antes de poder comenzar a trabajar con los contenedores relacionados con nuestro proyecto Drupal, tendremos que explorar y modificar algunos ajustes, relacionados principalmente con el nombre del proyecto, la conexión con MySQL, entre otros.</p> <p>     Para ello, abriremos el archivo (.env), que veremos en nuestra carpeta raiz, al haber copiado los archivos desde la carpetar server; en él encontraremos todas las definiciones por defecto, paa trabajar con un proyecto Drupal, incluyendo el nombre del proyecto, datos de conexión al servidor mysql, entre otros.</p> <p>     Como la idea es trabajar con un proyecto que ya existe, deberíamos modificar algunos de estos datos, o simplemente, dejar los mismos y actualizar los datos de conexión en el archivo de Drupal llamado settings.php, dentro de la carpeta "<strong>web/sites/default/</strong>"</p> <pre> ### PROJECT SETTINGS PROJECT_NAME=drupal9_existente PROJECT_BASE_URL=drupal9_existente.docker.localhost PROJECT_PORT=8000 DB_NAME=drupal9_existente DB_USER=drupal9_existente DB_PASSWORD=drupal9_existente DB_ROOT_PASSWORD=password DB_HOST=mariadb DB_PORT=3306 DB_DRIVER=mysql</pre> <h3>     Paso 4 - Arranque y comprobación de contenedores Docker </h3> <p>     Si todos los pasos anteriores no han devuelto ningún error o si ya los hemos corregido, entonces, podremos poner en marcha todos los contenedores, para continuar con el proceso de instalación de Drupal.</p> <p>     El primer comando que tendremos que ejecutar para el arranque será el siguiente:</p> <pre> docker-compose up -d</pre> <p>     Si tienes instalado Make, también puedes utilizar este comando :</p> <pre> make up</pre> <p>     Si quieres saber qué es Make y cómo instalarlo, <a href="/snippet/como-instalar-make-en-ubuntu" target="_blank">HAZ CLIC AQUÍ</a></p> <p>     Esto se iniciará el proceso de activación de todos los cotenedores en segundo plano, para que podamos continuar en la misa ventana de nuestra consola, sin entrar en conflicto cada vez que ejecutemos código posteriormente.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 14.08%;" data-ratio="14.08" data-b-token="b-37831a8a230" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Docker for Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Docker for Drupal | 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-635c57128fa05.jpg?itok=FcI9M39G" 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="1200" height="169" typeof="foaf:Image" /></div></div> <h3> Paso 5 - Importación de la base de datos</h3> <p>     Ya tenemos todo lo necesario para que podamos acceder a nuestro proyecto de Drupal, los contenedores ya están funcionando, por lo que, si escribimos el dominio, configurado en el archivo .evn, dentro de nuesto navegador, lo siguiente que tendríamos que ver es nuesto proyecto funcionando, pero todavía no hemos importado la base de datos para que esto ocurra.</p> <p>     Para importar la base de datos dentro de nuestro contenedor y que podamos ver luego el proyecto, tendremos que acceder directamente dentro del contenedor adecuado, para eso, ejecutaremos el comando que nos devolverá el nombre y estatus de todos los contenedores:</p> <pre> docker ps</pre> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 10.54%;" data-ratio="10.54" data-b-token="b-b89961241a9" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Docker for Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Docker for Drupal | 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-635c574536ce4.png?itok=wOzYLsmD" 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="1300" height="137" typeof="foaf:Image" /></div></div> <p>     A continuacióbn, buscaremos el Identificador único para el contenedor de Mysql, y luego escribiremos el siguiente comando, sustituyendo los datos necesarios:</p> <pre> docker exec -it ID_CONTENEDOR bash</pre> <p>     Con esto podremos acceder al interior del contenedor seleccionado, que en este caso será el encargado de gestionar nuestra base de datos y a continuación, podremos ejecutar cualquiera de los comando de mysql.</p> <p>     Para acceder al servidor Mysql y consultar, podremos ejecutar algo parecido al siguiente comando:</p> <pre> mysql -udrupal9_existente -pdrupal9_existente</pre> <p>     Con la anterior líneas, estaremos dentro de MySql y podremos ver el listado de bases de datos, de usuarios, permisos, etc.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 22.83%;" data-ratio="22.83" data-b-token="b-070bb1b0575" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Docker for Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Docker for Drupal | 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-635c577450186.jpg?itok=1xFkNhyE" 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="1200" height="274" typeof="foaf:Image" /></div></div> <p>     En nuestro caso, ya tenemos listo el archivo que vamos a importar, colocado dentro de la carpeta raíz de nuestro proyecto Drupal, por lo tanto, para accedere al contenedor y realizar la importación, bastará con ejecutar el siguiente comando, sustituyendo los datos por los correspondientes a tus propios contenedores:</p> <pre> docker exec -i f8e957b6b019 mysql -udrupal9_existente -pdrupal9_existente drupal9_existente &lt; backup_existente.sql</pre> <h3>   Ejecución de comandos con Composer y Drush</h3> <p>     Ya tenemos nuestro proyecto Drupal, listo para continuar trabajando, pero quizás necesitaremos realizar algunas actualizaciones, ya sea mediante el uso del gestor de paquetes Composer, o de la herramienta Drush.</p> <p>     En estos casos, el contenedor desde el cual tendremos que ejecutar ambas operaciones, será el encargado de php, por lo que buscaremos nuevamente el nombre, con el comando docker ps, y una vez lo sepamos, la operación será muy parecida:</p> <pre> docker exec -it ID_CONTENEDOR bash</pre> <p>     Y posteriormente, podremos ejecutar cualquiera de los comandos de Composer o Drush.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 22.83%;" data-ratio="22.83" data-b-token="b-ddaafc7121e" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Docker for Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Docker for Drupal | 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-635c582015d08.jpg?itok=G8PrrnGv" 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="1200" height="274" typeof="foaf:Image" /></div></div> <h3>     Posibles fallos durante el proceso:</h3> <p><em><strong>       Permisos de Docker</strong></em></p> <p>     Es posible que al ejecutar el comando para levantar los contenedores de Docker <em><strong>docker-compose up - d, </strong></em> la primera vez, te encuentres con un error relacionados con los permisos de ejecucion de los contenedores</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 21.75%;" data-ratio="21.75" data-b-token="b-eaafa5909b0" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Docker for Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Docker for Drupal | 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-635c584f96a34.jpg?itok=7BPbDgwL" 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="1200" height="261" typeof="foaf:Image" /></div></div> <p>     Para solucionarlo, ejecuta el siguiente comando, ubicándote dentro de la carpeta en la que quieres levantar los contenedores:</p> <pre> sudo chmod 777 /var/run/docker.sock</pre> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 21.75%;" data-ratio="21.75" data-b-token="b-4df56ca7896" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Docker for Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Docker for Drupal | 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-635c587d4a4a4.jpg?itok=drL7I4ON" 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="1200" height="261" typeof="foaf:Image" /></div></div> <p><em><strong>   Permisos en las carpetas</strong></em></p> <p><em><strong>     </strong></em>Aunque estemos trabajando con los archivos de un proyecto existente, al momento de trasladar esos archivos dentro de los contenedores, es posible que tengamos que volver a otorgar permisos de escritura y lectura a la carpeta root.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 48.42%;" data-ratio="48.42" data-b-token="b-842a1d4cd1d" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Docker for Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Docker for Drupal | 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-635c58a502268.jpg?itok=123-mp8z" 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="1200" height="581" typeof="foaf:Image" /></div></div> <p>     Para otorgar todos los permisos, nos colocaremos dentro de nuestra carpeta raiz y a continuación, ejecutaremos el comando siguiente:</p> <pre> sudo chmod -R 777 ./</pre> </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">Mié, 08/03/2023 - 18:13</span> Wed, 08 Mar 2023 17:13:50 +0000 webmaster 267 at https://drupaladicto.com Symfony | Entorno de desarrollo WSL2 en Windows https://drupaladicto.com/curso/entornos-locales/symfony-entorno-de-desarrollo-wsl2-en-windows <span class="field field--name-title field--type-string field--label-hidden">Symfony | Entorno de desarrollo WSL2 en Windows</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-1155" 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: 41.73%;" data-ratio="41.73" data-b-token="b-80c05e5581c" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="1a1f6f20-173b-4bfb-b118-a70412542ebe" alt="Symfony | 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/symfony-portada.png?itok=1fArXJE_" 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="1112" height="464" typeof="foaf:Image" /></div></div>   <p>   Ahora que ya sabemos <a href="https://www.drupaladicto.es/actualidad/como-instalar-drupal-9-usando-docker-en-windows-10-home">Cómo instalar una distribución Linux dentro de Windows 10 usando el WSL</a>, podemos pasar al siguiente nivel y explorar tantas opciones como nos hagan falta, para trabajar con cualquier proyecto, sin tener que cambiarnos de ordenador o trabajar con máquinas virtuales.</p> <p>     La idea es facilitarnos la vida y que podamos implementar todas las herramientas necesarias sin la necesidad de invertir demasiado tiempo en ello.</p> <p>     Por esta razón, hoy vamos a explicar cómo podremos configurar un entorno PHP para desarrollar un proyecto utilizando <a href="https://symfony.com/doc/current/index.html" target="_blank">Symfony</a>; uno de los Frameworks más potentes, robustos y seguros  que existen en el mercado.</p> <p><strong>     Aclaración antes de seguir</strong></p> <p>     Al momento de crear este artículo, existe <a href="https://github.com/microsoft/WSL/issues/4898">un conocido error</a> relacionado con el reloj en tiempo real con Ubuntu 20.04 y WSL2. Para evitar que surja este error, configuramos APT para congelar nuestra versión libc6 instalada a la de la distribución original emitiendo el siguiente comando:</p> <pre> sudo apt-mark hold libc6</pre> <p>     Tan pronto como hayamos ejecutado el anterior comando, podremos actualizar los paquetes de ubuntu ejecutando los siguiente:</p> <pre> sudo apt update</pre> <pre> sudo apt upgrade</pre> <p>     Lo próximo que instalemos son las dependencias centrales para ejecutar la plataforma eZ (y muchas otras aplicaciones Symfony):</p> <pre> sudo apt install composer php-xml php-intl php-gd php-curl php-fpm</pre> <p>     En la línea anterior, he omitido el servicio de base de datos para aclarar que la plataforma eZ es compatible con las bases de datos MySQL / MariaDB y PostgreSQL. ASí que podrás elegir lo que mejor se adapte a tus necesidades. En nuestro caso usaremos MariaDB para este tutorial. Instala el servidor MariaDB y la extensión PHP MySQL:</p> <pre> sudo apt install mariadb-server php-mysql</pre> <p>     Ya estamos listos para arrancar la instancia del servidor MariaDB e iniciar sesión como usuario root:</p> <pre> sudo service mysql start</pre> <pre> sudo mysql</pre> <p>     Vamos a añadir una base de datos para la plataforma eZ, Por lo que ejecutamos las siguientes declaraciones SQL:</p> <pre> CREATE DATABASE ezp; GRANT ALL ON ezp.* TO 'ezp'@'localhost' IDENTIFIED BY 'wsl2ezp'; FLUSH PRIVILEGES; EXIT;</pre> <p>     Y ahora comprobamos que podemos acceder a la base de datos:</p> <pre> mysql -uezp -pwsl2ezp ezp</pre> <p>     Ahora ya tenemos un entorno Linux con PHP, MariaDB y el administrador de paquetes Composer listo para funcionar:</p> <p> </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 34.47%;" data-ratio="34.47" data-b-token="b-648f1a924d1" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img loading="lazy" alt="comprobacion consola" decoding="async" class="media__element b-lazy b-filter img-fluid" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/comprobacion.png?itok=3-J-JoIr" 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="882" height="304" typeof="foaf:Image" /></div></div> <p>     Ya que vamos a utilizar Symfony Encore para gestionar los activos de front-end, instalaremos el administrador de paquetes Yarn desde el repositorio del proyecto. De esta forma también instalará Node.js como dependencia:</p> <pre> curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update sudo apt install yarn</pre> <h3>     Instalando el CLI de Symfony</h3> <p>     A estas alturas, puede que hayas notado que falta en el procedimiento de instalación anterior es la A en LAMP y la E en LEMP. En lenguaje sencillo: nuestra pila no tiene un servidor web instalado. Tradicionalmente, una pila PHP ha incluido un servidor web separado. Un servidor HTTP completo sigue siendo para instalaciones de producción, pero como estamos en desarrollo utilizaremos una opción más simple: Symfony Local Web Server</p> <p>     Symfony CLI es una aplicación de línea de comandos independiente que podremos instalar desde nuestra terminal WSL. Recuerda seguir las instrucciones de Linux, NO las de Windows:</p> <pre> wget https://get.symfony.com/cli/installer -O - | bash</pre> <p>     El código anterior lo instalará en nuestra carpeta de usuario, pero  podremos hacerlo disponible de forma global si ejecutamos el siguiente código, cambiando el NOMBRE DEL USUARIO por el tuyo:</p> <pre> sudo mv /home/nombre_usuario/.symfony/bin/symfony /usr/local/bin/symfony</pre> <p>     Ahora podemos verificar que nuestra pila está funcionando creando una nueva aplicación Symfony hello world y ejecutando el servidor web:</p> <pre> symfony new hola-mundo cd hola-mundo symfony serve</pre> <p>     Ha llegado el momento de abrir una ventana del navegador en <strong>http: // localhost: 8000 / </strong>para ver la aplicación en ejecución. La primera vez que lo ejecutes, es posible que Windows te pregunte si este tráfico está permitido. Ahora debería tener una aplicación Symfony básica ejecutándose en Windows usando WSL2 como se muestra en la captura de pantalla a continuación.</p> <p> </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 45.77%;" data-ratio="45.77" data-b-token="b-d41f0f03931" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img loading="lazy" alt="symfony funcionando correctamente" decoding="async" class="media__element b-lazy b-filter img-fluid" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/funcionando_symfony.png?itok=tFPN5lRW" 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="1300" height="595" typeof="foaf:Image" /></div></div> <p>     Para obtener más detalles sobre cómo configurar TLS, múltiples versiones de PHP, etc., diríjase a los <a href="https://symfony.com/doc/current/setup/symfony_server.html" target="_blank">documentos de Symfony</a>.</p> <h3>     Instalación de la Plataforma eZ y acceso a archivos</h3> <p>     El siguiente paso es instalar y ejecutar una aplicación Symfony completa. Esto funciona como en cualquier entorno Linux (¡porque es uno!). Así que vamos a <a href="https://doc.ezplatform.com/en/latest/getting_started/install_ez_platform/" target="_blank">instalar una copia de la plataforma eZ </a> y para ello utilizaremos. Éste se encargará de clonar los archivos desde el <a href="https://github.com/ezsystems/ezplatform" target="_blank">repositorio</a>, verificará por nosotros <a href="https://github.com/ezsystems/ezplatform/releases" target="_blank" title="">las actualizaciones disponibles</a> y a continuación instalar los paquetes necesarios usando:</p> <pre> composer create-project ezsystems/ezplatform ezplatform ^3 cd ezplatform</pre> <p>     Lo siguiente será instalar nuestra base de datos y para ello, necesitamos definir la configuración de la base de datos y ejecutar el instalador:</p> <pre> echo "DATABASE_URL=mysql://ezp:wsl2ezp@127.0.0.1:3306/ezp?serverVersion=10.3" &gt; .env.local composer run-script ezplatform-install</pre> <p>Cuando se haya completado el proceso de instalación,  podremos ingresar al directorio del proyecto e iniciar el servidor web Symfony:</p> <pre> symfony serve</pre> <p>     El resultado mostrará que el servidor web Symfony detecta y usa la copia instalada de PHP-FPM:</p> <p>     Ahora, si abrimos un navegador (en Windows) y nos dirigimos a http: // localhost: 8000 /, podremos ver la aplicación en ejecución. Para acceder a los archivos desde Windows, puede ejecutar el siguiente comando para abrir una ventana del Explorador de Windows en su directorio de trabajo actual:</p> <pre> explorer.exe .</pre> <p>     Desde aquí, podrás recoger las cosas y usar cualquier IDE en Windows (¡o incluso notepad.exe!) Que necesites usar para tu desarrollo.</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">Mié, 08/03/2023 - 18:11</span> Wed, 08 Mar 2023 17:11:11 +0000 webmaster 266 at https://drupaladicto.com Configurar un entorno de desarrollo PHP para Symfony con Windows y WSL2 https://drupaladicto.com/actualidad/configurar-un-entorno-de-desarrollo-php-para-symfony-con-windows-y-wsl2 <span class="field field--name-title field--type-string field--label-hidden">Configurar un entorno de desarrollo PHP para Symfony con Windows y WSL2</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">Mié, 08/03/2023 - 18:06</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"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1134" 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 sabemos <a href="/actualidad/como-instalar-drupal-9-usando-docker-en-windows-10-home">Cómo instalar una distribución Linux dentro de Windows 10 usando el WSL</a>, podemos pasar al siguiente nivel y explorar tantas opciones como nos hagan falta, para trabajar con cualquier proyecto, sin tener que cambiarnos de ordenador o trabajar con máquinas virtuales.</p> <p>     La idea es facilitarnos la vida y que podamos implementar todas las herramientas necesarias sin la necesidad de invertir demasiado tiempo en ello.</p> <p>     Por esta razón, hoy vamos a explicar cómo podremos configurar un entorno PHP para desarrollar un proyecto utilizando <a href="https://symfony.com/doc/current/index.html" target="_blank">Symfony</a>; uno de los Frameworks más potentes, robustos y seguros  que existen en el mercado.</p> <p><strong>     Aclaración antes de seguir</strong></p> <p>     Al momento de crear este artículo, existe <a href="https://github.com/microsoft/WSL/issues/4898">un conocido error</a> relacionado con el reloj en tiempo real con Ubuntu 20.04 y WSL2. Para evitar que surja este error, configuramos APT para congelar nuestra versión libc6 instalada a la de la distribución original emitiendo el siguiente comando:</p> <pre> sudo apt-mark hold libc6</pre> <p>     Tan pronto como hayamos ejecutado el anterior comando, podremos actualizar los paquetes de ubuntu ejecutando los siguiente:</p> <pre> sudo apt update</pre> <pre> sudo apt upgrade</pre> <p>     Lo próximo que instalemos son las dependencias centrales para ejecutar la plataforma eZ (y muchas otras aplicaciones Symfony):</p> <pre> sudo apt install composer php-xml php-intl php-gd php-curl php-fpm</pre> <p>     En la línea anterior, he omitido el servicio de base de datos para aclarar que la plataforma eZ es compatible con las bases de datos MySQL / MariaDB y PostgreSQL. ASí que podrás elegir lo que mejor se adapte a tus necesidades. En nuestro caso usaremos MariaDB para este tutorial. Instala el servidor MariaDB y la extensión PHP MySQL:</p> <pre> sudo apt install mariadb-server php-mysql</pre> <p>     Ya estamos listos para arrancar la instancia del servidor MariaDB e iniciar sesión como usuario root:</p> <pre> sudo service mysql start</pre> <pre> sudo mysql</pre> <p>     Vamos a añadir una base de datos para la plataforma eZ, Por lo que ejecutamos las siguientes declaraciones SQL:</p> <pre> CREATE DATABASE ezp; GRANT ALL ON ezp.* TO 'ezp'@'localhost' IDENTIFIED BY 'wsl2ezp'; FLUSH PRIVILEGES; EXIT;</pre> <p>     Y ahora comprobamos que podemos acceder a la base de datos:</p> <pre> mysql -uezp -pwsl2ezp ezp</pre> <p>     Ahora ya tenemos un entorno Linux con PHP, MariaDB y el administrador de paquetes Composer listo para funcionar:</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 34.47%;" data-ratio="34.47" data-b-token="b-648f1a924d1" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="cb53b28d-5595-4943-8e59-401e09a5793d" data-responsive-image-style="" alt="comprobacion consola" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/comprobacion.png?itok=3-J-JoIr" 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="882" height="304" typeof="foaf:Image" /></div></div> <p>     Ya que vamos a utilizar Symfony Encore para gestionar los activos de front-end, instalaremos el administrador de paquetes Yarn desde el repositorio del proyecto. De esta forma también instalará Node.js como dependencia:</p> <pre> curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update sudo apt install yarn</pre> <h3>     Instalando el CLI de Symfony</h3> <p>     A estas alturas, puede que hayas notado que falta en el procedimiento de instalación anterior es la A en LAMP y la E en LEMP. En lenguaje sencillo: nuestra pila no tiene un servidor web instalado. Tradicionalmente, una pila PHP ha incluido un servidor web separado. Un servidor HTTP completo sigue siendo para instalaciones de producción, pero como estamos en desarrollo utilizaremos una opción más simple: Symfony Local Web Server</p> <p>     Symfony CLI es una aplicación de línea de comandos independiente que podremos instalar desde nuestra terminal WSL. Recuerda seguir las instrucciones de Linux, NO las de Windows:</p> <pre> wget https://get.symfony.com/cli/installer -O - | bash</pre> <p>     El código anterior lo instalará en nuestra carpeta de usuario, pero  podremos hacerlo disponible de forma global si ejecutamos el siguiente código, cambiando el NOMBRE DEL USUARIO por el tuyo:</p> <pre> sudo mv /home/nombre_usuario/.symfony/bin/symfony /usr/local/bin/symfony</pre> <p>     Ahora podemos verificar que nuestra pila está funcionando creando una nueva aplicación Symfony hello world y ejecutando el servidor web:</p> <pre> symfony new hola-mundo cd hola-mundo symfony serve</pre> <p>     Ha llegado el momento de abrir una ventana del navegador en <strong>http: // localhost: 8000 / </strong>para ver la aplicación en ejecución. La primera vez que lo ejecutes, es posible que Windows te pregunte si este tráfico está permitido. Ahora debería tener una aplicación Symfony básica ejecutándose en Windows usando WSL2 como se muestra en la captura de pantalla a continuación.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 45.77%;" data-ratio="45.77" data-b-token="b-d41f0f03931" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="e3374cfa-56c1-43dd-b856-9de3b933077a" data-responsive-image-style="" alt="symfony funcionando correctamente" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/funcionando_symfony.png?itok=tFPN5lRW" 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="1300" height="595" typeof="foaf:Image" /></div></div> <p>     Para obtener más detalles sobre cómo configurar TLS, múltiples versiones de PHP, etc., diríjase a los <a href="https://symfony.com/doc/current/setup/symfony_server.html" target="_blank">documentos de Symfony</a>.</p> <h3>     Instalación de la Plataforma eZ y acceso a archivos</h3> <p>     El siguiente paso es instalar y ejecutar una aplicación Symfony completa. Esto funciona como en cualquier entorno Linux (¡porque es uno!). Así que vamos a <a href="https://doc.ezplatform.com/en/latest/getting_started/install_ez_platform/" target="_blank">instalar una copia de la plataforma eZ </a> y para ello utilizaremos. Éste se encargará de clonar los archivos desde el <a href="https://github.com/ezsystems/ezplatform" target="_blank">repositorio</a>, verificará por nosotros <a href="https://github.com/ezsystems/ezplatform/releases" target="_blank" title="">las actualizaciones disponibles</a> y a continuación instalar los paquetes necesarios usando:</p> <pre> composer create-project ezsystems/ezplatform ezplatform ^3 cd ezplatform</pre> <p>     Lo siguiente será instalar nuestra base de datos y para ello, necesitamos definir la configuración de la base de datos y ejecutar el instalador:</p> <pre> echo "DATABASE_URL=mysql://ezp:wsl2ezp@127.0.0.1:3306/ezp?serverVersion=10.3" &gt; .env.local composer run-script ezplatform-install</pre> <p>Cuando se haya completado el proceso de instalación,  podremos ingresar al directorio del proyecto e iniciar el servidor web Symfony:</p> <pre> symfony serve</pre> <p>     El resultado mostrará que el servidor web Symfony detecta y usa la copia instalada de PHP-FPM:</p> <p>     Ahora, si abrimos un navegador (en Windows) y nos dirigimos a http: // localhost: 8000 /, podremos ver la aplicación en ejecución. Para acceder a los archivos desde Windows, puede ejecutar el siguiente comando para abrir una ventana del Explorador de Windows en su directorio de trabajo actual:</p> <pre> explorer.exe .</pre> <p>     Desde aquí, podrás recoger las cosas y usar cualquier IDE en Windows (¡o incluso notepad.exe!) Que necesites usar para tu desarrollo.</p> </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/symfony" hreflang="es">symfony</a></div> <div class="field__item"><a href="/categoria/servidor" hreflang="es">servidor</a></div> <div class="field__item"><a href="/categoria/lamp" hreflang="es">lamp</a></div> <div class="field__item"><a href="/categoria/apache" hreflang="es">apache</a></div> <div class="field__item"><a href="/categoria/php" hreflang="es">php</a></div> <div class="field__item"><a href="/categoria/mysql" hreflang="es">mysql</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/desarrollo" hreflang="es">desarrollo</a></div> <div class="field__item"><a href="/categoria/development" hreflang="es">development</a></div> <div class="field__item"><a href="/categoria/entornos" hreflang="es">entornos</a></div> <div class="field__item"><a href="/categoria/linux" hreflang="es">linux</a></div> <div class="field__item"><a href="/categoria/console" hreflang="es">console</a></div> <div class="field__item"><a href="/categoria/consola" hreflang="es">consola</a></div> <div class="field__item"><a href="/categoria/ubuntu" hreflang="es">ubuntu</a></div> </div> </div> Wed, 08 Mar 2023 17:06:43 +0000 webmaster 265 at https://drupaladicto.com Node.js en (WSL2) | Instalación con Windows 11 https://drupaladicto.com/curso/entornos-locales/nodejs-en-wsl2-instalacion-con-windows-11 <span class="field field--name-title field--type-string field--label-hidden">Node.js en (WSL2) | Instalación con Windows 11</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-948 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-948 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-948 .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-948"> <section id="video-only-948" 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-669-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-669-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-669-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/DPGaNJ6j-ts&amp;max_width=0&amp;max_height=0&amp;hash=xq7VwtOUDpw2fup9i4A3mBOiVAefTPK10JfDu2DOs1M" 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-669-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-1154" 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>      Aquí en <strong>drupaladicto.com</strong> nos gusta facilitar al máximo, todo lo relacionado con el desarrollo web, basándonos en Drupal, pero también en las diferentes herramientas complementarias, para que nuestro desarrollo pueda realizarse de forma optimizada, y adecuada según la necesidad de cada proyecto.</p> <p>     Una de nuestras opciones preferidas, es el uso del subsistema para Windows, llamado WSL2, ya que nos permite interactuar tanto en Linux como en Windows, sin la necesidad de instalar máquinas virtuales, como por ejemplo <a href="https://www.oracle.com/emea/virtualization/solutions/try-oracle-vm-virtualbox/?source=:ad:pas:go:dg:a_emea:71700000086137880-58700007342953622-p65823631294:RC_WWMK201210P00009C0001:&amp;SC=:ad:pas:go:dg:a_emea::RC_WWMK201210P00009C0001::&amp;gclid=CjwKCAiAxJSPBhAoEiwAeO_fP6hvIYL67KsdjWwhqim9f4uCEj-jrjnBCQGG0XE_XpqwsDKixl5DQRoChbsQAvD_BwE&amp;gclsrc=aw.ds" target="_blank">VirtualBox</a>, cuya configuración y espacio necesarios para ejecutarse, muchas veces, dificultan nuestras actividades, en lugar de facilitarnos la vida.</p> <p>     Por esta razón, hoy aprenderemos a instalar y configurar el entorno de ejecución para JavaScript Node.js y los gestores de paquetes NVM ( Node Version Manager) y (NPM) (Node Package Manager), utilizando la distribución de Linux, Ubuntu 20.04 con WSL2 en un entorno Windows 11.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 65.76%;" data-ratio="65.76" data-b-token="b-2a7d40ffb61" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="4c87a379-51f8-4548-adeb-1c4ceb5e1b74" alt="Node JS | 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/node-portada.png?itok=19-Y-PuE" 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="885" height="582" typeof="foaf:Image" /></div></div> <p>     Seguiremos los pasos de instalación publicados en la documentación de la <a href="https://docs.microsoft.com/es-es/windows/dev-environment/javascript/nodejs-on-wsl" target="_blank">Página Oficial de Microsoft</a>, que nos menciona el siguiente detalle a tomar en cuenta:</p> <p>     "Además de elegir si se desea realizar la instalación en Windows o WSL, al instalar Node.js es preciso elegir más opciones. Se recomienda usar un administrador de versiones, ya que las versiones cambian con mucha rapidez. Es probable que tenga que cambiar de versión de Node.js en función de las necesidades de los distintos proyectos en los que se trabaje. El administrador de versiones de Node, más comúnmente denominado nvm, es la forma más habitual de instalar varias versiones de Node.js.</p> <p>     Siempre se recomienda quitar cualquier instalación existente de Node.js o npm del sistema operativo antes de instalar un administrador de versiones, ya que los distintos tipos de instalación pueden provocar conflictos extraños y confusos."</p> <h2 id="install-nvm-nodejs-and-npm">Instalación de nvm, node.js y npm</h2> <p>  <strong>   Paso 1 : </strong>Abrir consola e iniciar sesión con nuestro usuario NO_ROOT, si no sabes, <a href="/actualidad/como-instalar-lamp-usando-wsl2-en-windows-10-1era-parte" target="_blank">haz clic aquí</a></p> <p>    <strong> Paso 2 :</strong> Instala cURL (una herramienta que se usa para descargar contenido de Internet en la línea de comandos) con: </p> <pre> sudo apt-get install curl</pre> <p>     <strong>Paso 3 :</strong> Instala nvm con: </p> <pre> curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash</pre> <p>     <strong>NOTA :</strong> En el momento de redactar este artículo, NVM v0.39.0 es la versión más reciente disponible. Puedes consultar la <a data-linktype="external" href="https://github.com/nvm-sh/nvm">página del proyecto de GitHub para obtener la última versión de NVM</a> y ajustar el comando anterior para incluir la versión más reciente.</p> <p>     <strong>Paso 4 :</strong> Para verificar la instalación, escribe: command <strong>-v nvm</strong><strong>...</strong> esto debería devolver "nvm"; si recibes "No se encuentra el comando" o ninguna respuesta, cierra el terminal actual, vuelve a abrirlo e inténtalo de nuevo. <a data-linktype="external" href="https://github.com/nvm-sh/nvm">Obtén más información en el repositorio de GitHub de nvm</a>.</p> <p>     <strong>Paso 5 :</strong> Enumera qué versiones de Node están instaladas actualmente (en este momento no debe haber ninguna):</p> <pre> nvm ls</pre> <p>     <strong>Paso 6 : </strong>Instale las versiones de LTS actual y estable de Node.js. En un paso posterior, aprenderá a cambiar entre las versiones activas de Node.js con un comando <strong>nvm</strong>.</p> <ul><li>Instale la versión LTS estable actual de Node.js (recomendada para aplicaciones de producción): <pre> nvm install --lts</pre> </li> <li>Instale la versión actual de Node.js (para probar las características y mejoras de Node.js más recientes, pero con más probabilidad de presentar problemas): <pre> nvm install node</pre> </li> </ul><p>     <strong>Paso 7 :</strong> Enumera qué versiones de Node están instaladas: <strong>nvm ls...</strong> ahora deberías ver las dos versiones que acabas de instalar.</p> <p>     <strong>Paso 8 :</strong> Comprueba que Node.js está instalado y la versión predeterminada actualmente con: node --version. Después, comprueba que también tienes npm, con: </p> <pre> npm --version</pre> <p>     (También puedes usar which node o which npm para ver la ruta de acceso utilizada para las versiones predeterminadas).</p> <p>     <strong>Paso 9 :</strong> Para cambiar la versión de Node.js que deseas usar para un proyecto, crea un directorio de proyecto <strong>mkdir NodeTest</strong>, escribe el directorio <strong>cd NodeTest</strong> y, a continuación, escribe <strong>nvm use node</strong>, para cambiar a la versión actual, o bien <strong>nvm use --lts</strong> para cambiar a la versión de LTS. También puedes usar el número específico de cualquier versión adicional que hayas instalado, como nvm use v8.2.1. (Para enumerar todas las versiones de Node.js disponibles, usa el comando: <strong>nvm ls-remote</strong>).</p> <p><strong>     Si usas NVM para instalar Node.js y NPM, no es necesario usar el comando SUDO para instalar nuevos paquetes.</strong></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">Mié, 08/03/2023 - 18:04</span> Wed, 08 Mar 2023 17:04:09 +0000 webmaster 264 at https://drupaladicto.com Cómo Instalar LAMP usando WSL2 en Windows 10 (1era Parte) https://drupaladicto.com/actualidad/como-instalar-lamp-usando-wsl2-en-windows-10-1era-parte <span class="field field--name-title field--type-string field--label-hidden">Cómo Instalar LAMP usando WSL2 en Windows 10 (1era Parte)</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">Mié, 08/03/2023 - 17:48</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-1019 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-1019 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-1019 .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-1019"> <section id="video-only-1019" 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-726-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-726-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-726-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/jiyN-qhYPRU&amp;max_width=0&amp;max_height=0&amp;hash=AIPM3z7Qnt9uX_61Mdg-XWYw0-Trx622QL9gzPRGc5w" 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-726-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-1130" 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/jiyN-qhYPRU" target="_blank">HAZ CLIC AQUI</a></strong></h2> <p>      Antes de trabajar en cualquier proyecto web, deberíamos contar con un entorno completo, que incluya todo lo necesario para que nuestra aplicación funcione correctamente, además de ofrecernos un lugar estable donde podamos realizar todo tipo de pruebas y procedimientos.</p> <p>     Aunque ya hemos explicado en otro artículo todo lo que necesitas saber sobre <a href="/actualidad/como-instalar-drupal-9-usando-docker-en-windows-10-home" hreflang="es">Cómo instalar Drupal 9 usando Docker en Windows 10 Home</a>, hoy te voy a contar cómo realizar la instalación completa de un servidor Linux que incluya, además, el Apache, Mysql y PHP, con la respectiva configuración del dominio para que puedas instalar Drupal en tu servidor local.</p> <h2>   Cómo Instalar LAMP usando WSL2 en Windows 10</h2> <h3>      Paso 1 Instalación y configuración de WSL2 en Windows</h3> <p>          Para no repetirme, puedes leer todo el proceso de instalación y configuración del WSL2 para Windows 10, en el artículo <a href="/actualidad/como-instalar-drupal-9-usando-docker-en-windows-10-home" target="_blank">Cómo instalar Drupal 9 usando Docker en Windows 10 Home (1era Parte)</a>, y una vez hayas realizado la instalación podrás continuar con el siguiente paso.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 45.34%;" data-ratio="45.34" data-b-token="b-0b95210bad3" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="d6a8775f-8dcd-42eb-8b55-6393b45e344b" data-responsive-image-style="" alt="wsl2 - www.drupaladicto.org Formacion especializada en drupal y symfony - roles permisos y usuarios" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/distribucion_linux.gif?itok=fzlqNivS" 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="783" height="355" typeof="foaf:Image" /></div></div> <p>          Además, antes de continuar, te recomiendo instalar la nueva terminal de Windows 10, para que puedas realizar operaciones simultáneas usando diferentes pestañas, te cuento cómo hacerlo en este artículo <a href="/actualidad/instalacion-y-configuracion-de-terminal-windows">Instalación y configuración de Terminal Windows</a></p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div data-b-token="b-7b90b4fd003" class="media media--blazy media--image media--ratio media--ratio--32 is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="52205fc4-4541-40a7-a0a4-da01260ccd16" data-responsive-image-style="" alt="windows terminal - www.drupaladicto.org Formacion especializada en drupal y symfony - roles permisos y usuarios" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/terminal.png?itok=Scuc5acM" 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="600" height="400" typeof="foaf:Image" /></div></div> <p>     Ahora, antes de continuar, debe saber que puede omitir casi todos los pasos a continuación y simplemente hacer: <strong>sudo apt install lamp-server ^ phpmyadmin</strong>. Sin embargo, yo intenté hacerlo de esta forma y me dio varios errores, por lo que, en mi opinión recomiendo la opción "Larga", que además te dará control total sobre tu servidor y servicios instalados. </p> <h3><strong>      Paso 2 - crear un usuario No Root para la ejecución del código:</strong></h3> <p>          El usuario <strong>root</strong> es el usuario administrativo en un entorno Linux que tiene privilegios muy amplios. Debido a su inmenso poder, no se recomienda usarlo de forma regular. </p> <p>          El siguiente paso es configurar una cuenta de usuario alternativa, con un alcance de influencia reducido para el trabajo diario. Y podremos usar el la opción SUDO, cuando necesitemos permisos especiales sin tener que cambiar de usuario.</p> <p>          Con el siguiente código, voy a crear un usuario nuevo, que no será root, y que utilizaremos de aquí en adelante para el resto de la configuración.</p> <p>          Como por defecto en la instalación de ubuntu hemos creado el usuario root, ejecutaremos el siguiente comando con el prefijo sudo, y una vez complementada la información del nuevo usuario, que si no quieres rellenar la info puedes presionar ENTER en cada pregunta, como he hecho para este ejemplo.</p> <p>          Luego abriremos otra pestaña en la terminal de windows, si no la tienes instalada aprende cómo hacerlo en <a href="/actualidad/instalacion-y-configuracion-de-terminal-windows" target="_blank">Instalación y configuración de Terminal Windows</a>,  para no perder, de momento los accesos como root y luego continuaremos con el procedimiento:</p> <pre> adduser noroot_user</pre> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 56.77%;" data-ratio="56.77" data-b-token="b-e013dff78a7" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="ed0353e9-8b97-4f96-b226-19f9c83d2a72" data-responsive-image-style="" alt="docker - www.drupaladicto.org Formacion especializada en drupal y symfony - roles permisos y usuarios" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/crear_usuario_no_root.png?itok=WLfVBKrX" 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="352" typeof="foaf:Image" /></div></div> <p>          Una vez creado el nuevo usuario, abriremos la nueva pestaña en la terminal y ejecutaremos el siguiente código, que nos permitirá acceder con los datos de nuestro nuevo usuario:</p> <pre> su - noroot_user</pre> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 56.77%;" data-ratio="56.77" data-b-token="b-d523c699393" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="c1bb62ba-cd14-4fb4-a5f2-513633de011c" data-responsive-image-style="" alt="docker - www.drupaladicto.org Formacion especializada en drupal y symfony - roles permisos y usuarios" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/cambiando_sesion_no_root.png?itok=odUPVSd-" 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="352" typeof="foaf:Image" /></div></div> <h3>     Paso 3 - Otorgarle privilegios root a nuestro nuevo usuario:     </h3> <p>          Ahora, tenemos una nueva cuenta de usuario con privilegios de cuenta regulares. Sin embargo, es posible que a veces necesitemos realizar tareas administrativas. Para evitar tener que cerrar la sesión de nuestro usuario normal y volver a iniciarla como la cuenta root, podemos configurar lo que se conoce como "superusuario" o privilegios de root para nuestra cuenta normal. Esto permitirá a nuestro usuario normal ejecutar comandos con privilegios administrativos poniendo la palabra sudo antes de cada comando.</p> <p>          Como todavía tenemos abierta la pestaña de la terminal, donde habíamos iniciado sesión como root, vamos a ejecutar desde allí el siguiente código para otorgar los nuevos privilegios a nuestro usuario noroot_user:</p> <pre> usermod -aG sudo noroot_user</pre> <p>          Una vez otorgados los permisos de root, tendremos que cerrar la otra pestaña, donde está el usuario noroot_user, para poder comenzar a utilizarlos con los permisos recién adquiridos.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 62.42%;" data-ratio="62.42" data-b-token="b-92d407d9889" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="a009d2fd-8bfc-4dac-be69-035b235c9b21" data-responsive-image-style="" alt="docker - www.drupaladicto.org Formacion especializada en drupal y symfony - roles permisos y usuarios" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/permisos_root.png?itok=9WwjnClx" 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="387" typeof="foaf:Image" /></div></div> <h3>     Paso 4 - Instalación del Servidor Apache</h3> <p>         Para instalar apache, vamos a necesitar dos comando:</p> <pre> sudo apt install apache2</pre> <pre> sudo service apache2 start</pre> <p>     Una vez instalado el servidor Apache, probemos que todo funciona, accediendo en el navegador a la url <strong>http://localhost. Deberíamos ver en pantalla la siguiente imagen:</strong></p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 71.44%;" data-ratio="71.44" data-b-token="b-14cb96b2adb" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="8e977e44-59ef-434b-a0a9-da50ab692052" data-responsive-image-style="" alt="apache - www.drupaladicto.org Formacion especializada en drupal y symfony - roles permisos y usuarios" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/apache.png?itok=vLy9aE6f" 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="872" height="623" typeof="foaf:Image" /></div></div> <p>     Si todo es correcto, entonces podremos continuar y habilitaremos los módulos que vamos a necesitar, como el "Rewirte" o el "SSL"</p> <pre> sudo a2enmod rewrite</pre> <pre> sudo a2enmod ssl</pre> <p>     Y a continuación, para que se efectúen los cambios en el servidor, necesitaremos reiniciarlo usando el comando:</p> <pre> sudo service apache2 restart</pre> <p>     Llegado a este punto, te recomendaría ajustar la configuración de Apache para que los permisos coincidan con su nombre de usuario. En otras palabras, cuando hagas una lista de archivos, esta configuración de nombre de usuario que ingrese en Apache será la misma que la del propietario de los archivos en su sistema de archivos Linux. De esa forma, Apache tendrá permisos para modificar los archivos y carpetas de tu sitio. Si no lo haces, es posible que elementos como Grav y WP no funcionen correctamente o no funcionen en absoluto. Así que dirígete a este archivo y haz el siguiente cambio:</p> <pre> sudo nano /etc/apache2/envvars</pre> <pre> export APACHE_RUN_USER=your_user</pre> <pre> export APACHE_RUN_GROUP=your_user</pre> <p>     Y a continuación, una vez hayas editado el archivo envvars, para que se efectúen los cambios en el servidor, necesitaremos reiniciarlo usando el comando:</p> <pre> sudo service apache2 restart</pre> <p>     Ahora podemos comprobar si ambos módulos han sido activados correctamente, ejecutando el siguiente comando:</p> <pre> <code spellcheck="false">apache2ctl -M | egrep 'ssl|rewrite'</code></pre> <p>     Entonces en nuestra consola, si todo está correcto, deberíamos ver el siguiente mensaje:</p> <pre> <code spellcheck="false">#Enabled  rewrite_module (shared)  ssl_module (shared</code></pre> <h3>     Paso 5 - Instalación y configuración del Servidor de Base de datos MariaDB</h3> <p>          Lo primero que necesitaremos es instalar el servidor, ejecutando el siguiente comando:</p> <pre> sudo apt install mariadb-server mariadb-client</pre> <p><strong>     Importante: No se le pedirá que cree una contraseña, pero en una instalación local está bien. Y técnicamente no es inseguro de todos modos, ya que significa que solo aquellos con privilegios de sudo pueden acceder al servidor MySQL.</strong></p> <p>     Ahora necesitamos iniciar el servidor MySQL ejecutando el siguiente comando:</p> <pre> sudo service mysql start</pre> <h3>     Paso 6 - Instalación y configuración PHP</h3> <p>          En el caso de PHP, además de instalar la versión que vamos a utilizar, tendremos que realizar algunas modificaciones, como la activación de varias librerías, y otras modificaciones recomendadas para trabajar con Drupal, como el tiempo de ejecución o el máximo de tamaño de subida de archivos, pero vamos por partes, primero instalaremos php y activaremos algunas librerías necesarias:</p> <pre> sudo apt install php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl -y</pre> <p>          Es posible que también deba instalar módulos según los requisitos de su aplicación. Utilice el siguiente comando para buscar módulos PHP 7 disponibles en el repositorio de paquetes.</p> <pre> sudo apt-cache search php7*</pre> <p>          En nuestro caso, vamos a instalar los siguientes "módulos" de php:</p> <pre> sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd  php-mbstring php-curl php-xml php-pear php-bcmath</pre> <p>     Por últimos, vamos a realizar algunos de los cambios de configuración del PHP.ini que nos ayudarán y evitarán posibles errores una vez instalemos nuestro Drupal. Para ello, abriremos el archivo de configuración de php "php.ini" y realizaremos las modificaciones correspondientes:</p> <pre> sudo nano /etc/php/7.4/apache2/php.ini</pre> <ul><li>max_execution_time = 600</li> <li>post_max_size = 64M</li> <li>short_open_tag<br />    Default Value: On</li> <li>memory_limit = -1</li> <li>upload_max_filesize = 100M</li> </ul><p>     Una vez actualizados los cambios en el archivo de configuración de apache, volveremos a reiniciar nuestro servidor para que se guarden dichos cambios, para ello ejecutaremos el comando:</p> <pre> sudo service apache2 restart</pre> <p>     Ahora que PHP está instalado, para probar si está funcionando, cree un archivo de prueba llamado <strong>phpinfo.php</strong> en el directorio raíz predeterminado de Apache2…. (<strong>/ var / www / html /</strong>)</p> <pre> sudo nano /var/www/html/phpinfo.php</pre> <p>     Luego, escriba el contenido a continuación y guarde el archivo.</p> <pre> &lt;?php phpinfo( ); ?&gt;</pre> <p>     A continuación, abra su navegador y busque el nombre de host o la dirección IP del servidor seguido de <strong>phpinfo.php</strong></p> <p>http://localhost/phpinfo.php</p> <p>Debería ver la página de prueba predeterminada de PHP, como esta:</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 67.14%;" data-ratio="67.14" data-b-token="b-90318f7f083" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img class="img-fluid media__element b-lazy b-filter" data-entity-uuid="e3a4417c-2a21-4706-88a4-2717814ccc67" data-responsive-image-style="" alt="php ini - www.drupaladicto.org Formacion especializada en drupal y symfony - roles permisos y usuarios" decoding="async" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/phpini.png?itok=peg1iTNh" 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="776" height="521" typeof="foaf:Image" /></div></div> <p>     Una vez comprobado que todo está correcto, tendremos que borrar este archivo ya que es información que implica riesgos de seguridad, para ello ejecutaremos el siguiente comando:</p> <pre> <code spellcheck="false">rm -f /var/www/html/info.php</code></pre> <h3>      Paso 7 - Instalación Interfaz Usuario para administrar MySql</h3> <p>          Aunque según los requerimientos de tu aplicación, puede que no te haga falta un entorno gráfico, para la administración de tus bases de datos y tablas, porque lo realizarás usando comandos de tu consola, te recomiendo instalar esta pequeña aplicación que te servirá de ayuda:</p> <pre> sudo apt install adminer</pre> <p>     Casi hemos terminado. Hay un problema para todos aquellos que cambiaron la configuración de usuario / grupo de Apache anterior. El administrador accede y escribe en su carpeta de sesiones de PHP, por lo que debe otorgarle a su usuario (el usuario que configuró en Apache) los permisos de la carpeta correspondiente a esa carpeta. Puedes realizar el cambio ejecutando el siguiente comando:</p> <pre> cd /var/lib/php</pre> <pre> sudo chown -R your_user:your_user sessions</pre> <p>     Ahora sí, lo último que nos faltará es activar Adminer, reiniciar Apache nuevamente, por supuesto, y luego verlo. Comience con estos dos comandos:</p> <pre> sudo a2enconf adminer.conf</pre> <pre> sudo service apache2 restart</pre> <p>     Para comprobar el Adminer funciona correctamente escribe en el navegador la url <strong>http://localhost/adminer/</strong></p> <p>     ¡Pero necesitamos un nombre de usuario para iniciar sesión ahora! Así que sigamos adelante y hagamos eso. <strong>Recuerde que todo esto es solo para desarrolladores locales</strong>, por lo que las preocupaciones de seguridad habituales relacionadas con la creación de un superusuario no se aplican realmente. Nunca hagas esto en un sitio en vivo. Siempre.</p> <p>     Así que inicie MySQL así:</p> <pre> sudo mysql</pre> <p>    Luego ingrese los siguientes comandos, Primero creamos el usuario que funcionará como root, luego le daremos los permisos para que pueda hacer cualquier tarea con las bases de datos, a continuación reseteamos la tabla de permisos y por último, saldremos de servidor de base de datos:</p> <pre> CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'your_password';</pre> <pre> GRANT ALL PRIVILEGES ON * . * TO 'user_name'@'localhost';</pre> <pre> <code spellcheck="false">flush privileges;</code></pre> <pre> <code spellcheck="false">exit</code></pre> <p>     Ahora que haz creado un superusuario, ya podrás iniciar sesión en Adminer y comenzar a trabajar con tus bases de datos y tablas.</p> <blockquote> <p><strong>* Usuario con permisos específicos</strong></p> <p><strong>     </strong>Aunque tenemos un <strong>Super usuario</strong> con el cuál podremos realizar, todas las operaciones en nuestro servidor de base de datos, es <strong>muy recomendable</strong> limitar los accesos a la base de datos específica en cada proyecto. Por esta razón, a continuación vamos a crear un usuario y una base de datos específica para nuestro proyecto.</p> </blockquote> <p>     Primero nos vamos a loguear como Super usuario y una vez dentro, ejecutaremos cada una de las líneas siguientes, en las que primero crearemos la base de datos, luego el usuario con sus datos de acceso, a continuación le daremos todos los permisos, específicos para la tabla en concreto y por último el reseteo de la tabla de permisos:</p> <pre> sudo mysql;</pre> <pre> CREATE DATABASE drupaldb;</pre> <pre> CREATE USER drupaluser@localhost IDENTIFIED BY 'drupaluser@';</pre> <pre> GRANT ALL PRIVILEGES ON drupaldb.* to drupaluser@localhost identified by 'drupaluser@';</pre> <pre> FLUSH PRIVILEGES;</pre> <pre> EXIT</pre> <p>     Si queremos ver el listado de las bases de datos que tenemos creadas al momento, entraremos a MySql y luego ejecutamos el siguiente comando:</p> <pre> SHOW DATABASES;</pre> <p>     Para borrar una base de datos <strong>(Cuidado porque se perderá toda la información)</strong>, ejecutaremos:</p> <pre> DROP DATABASE mi_bd_para_borrar;</pre> <p>     Para ver el listado de usuarios creados, ejecutaremos el siguiente comando:</p> <pre> SELECT User FROM mysql.user;</pre> <p>     Para borrar un usuario específico:</p> <pre> DROP USER 'usuario'@'localhost';</pre> <h3>     Paso 8 - Configuración del Virtual Host y el SSL</h3> <p>          Para poder trabajar con certificados SSL, es necesario prestar atención en varios detalles previos, por eso, he preferido hacerlo en otro artículo con su video propio, que <a href="/actualidad/como-instalar-un-certificado-ssl-y-activar-https-en-drupal-9" target="_blank">podrás leer y ver haciendo clic aqui</a>  <a href="/actualidad/como-instalar-un-certificado-ssl-y-activar-https-en-drupal-9" target="_blank">Ver siguiente artículo</a></p> </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/servidor" hreflang="es">servidor</a></div> <div class="field__item"><a href="/categoria/lamp" hreflang="es">lamp</a></div> <div class="field__item"><a href="/categoria/apache" hreflang="es">apache</a></div> <div class="field__item"><a href="/categoria/php" hreflang="es">php</a></div> <div class="field__item"><a href="/categoria/mysql" hreflang="es">mysql</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/desarrollo" hreflang="es">desarrollo</a></div> <div class="field__item"><a href="/categoria/development" hreflang="es">development</a></div> <div class="field__item"><a href="/categoria/entornos" hreflang="es">entornos</a></div> <div class="field__item"><a href="/categoria/linux" hreflang="es">linux</a></div> <div class="field__item"><a href="/categoria/console" hreflang="es">console</a></div> <div class="field__item"><a href="/categoria/consola" hreflang="es">consola</a></div> <div class="field__item"><a href="/categoria/ubuntu" hreflang="es">ubuntu</a></div> </div> </div> Wed, 08 Mar 2023 16:48:22 +0000 webmaster 261 at https://drupaladicto.com LAMP Server | Instalación con WSL2 en Windows 10 (2da Parte) https://drupaladicto.com/curso/entornos-locales/lamp-server-instalacion-con-wsl2-en-windows-10-2da-parte <span class="field field--name-title field--type-string field--label-hidden">LAMP Server | Instalación con WSL2 en Windows 10 (2da Parte)</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-929 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-929 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-929 .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-929"> <section id="video-only-929" 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-649-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-649-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-649-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/8wPxDBKJg64&amp;max_width=0&amp;max_height=0&amp;hash=DmFcp3SLcQr0fGvqE0R3d93QNhe8tfBDJCqwr4hcPs4" 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-649-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-1153" 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/8wPxDBKJg64" target="_blank">HAZ CLIC AQUI</a></strong></h2> <h3>Paso 5 Configuración del Virtual Host y el SSL</h3> <p>          Ahora que ya tenemos todos los requisitos previos a nuestra instalación de Drupal, que aprendimos en el artículo anterior <a href="https://www.drupaladicto.es/actualidad/como-instalar-lamp-usando-wsl2-en-windows-10-1era-parte">Cómo Instalar LAMP usando WSL2 en Windows 10 (1era Parte)</a>, ha llegado el momento de comenzar los preparativos, para que podamos instalar en nuestro servidor local, cualquier tipo de web, en nuestro caso, desarrollada con Drupal 9, funcionando con un certificado SSL.</p> <p>          Aunque en realidad, nuestro certificado será sólo para uso local, ya que no está autorizado, por ninguna de las entidades reales creadas con este propósito, nos permitirá realizar todo tipo de pruebas relacionadas con la seguridad como requisito, o por ejemplo, para el desarrollo de webs del tipo Progressive Web App (PWA), utilizando el módulo de Drupal, donde el certificado es obligatorio. </p> <p>         Existen varias herramientas y métodos con los que podríamos generar certificados SSL, una de las más conocidas es <a href="https://certbot.eff.org/">Certbot</a>, que se puede instalar en Linux y que ofrece la posibilidad de generar certificados autofirmados, para utilizar en entornos locales, que es el tipo que vamos a emplear en esta ocasión. Pero en lugar de usarlo, he preferido utlizar <strong>Openssl</strong>, que ya viene instalado dentro de la distribución de Ubuntu que hemos seleccionado para este artículo, así que empecemos:</p> <h2>Cómo Instalar un Certificado SSL y activar HTTPS en Drupal 9</h2> <h3>     1.- Ubicación de los certificados</h3> <p>          Como ya hemos dicho, el programa OpenSSL viene instalado en la distribución de Ubuntu 20.04, que es la que estamos utilizando. Para comprobarlo vamos a colocarnos en la carpeta donde se guardan los certificados de este programa y la utilizaremos como ubicación para los nuestros también. </p> <p>          Ejecutaremos los siguientes comandos, para ir hasta la carpeta y luego listar su contenido:</p> <pre> cd /etc/ssl</pre> <pre> sudo ls</pre> <p> </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 15.67%;" data-ratio="15.67" data-b-token="b-0e712f3d02c" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="LAMP Drupal | 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-633003d5a3dc2.png?itok=4XJ893-k" 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="351" height="55" typeof="foaf:Image" /></div></div> <h3>     2.- Generar los certificados</h3> <p>          Ahora que tenemos decidida la ubicación para nuestro certificado, y que ya hemos decidido el nombre que vamos a registrar, como dominio para nuestra web, lo siguiente que tendremos que hacer es ejecutar el siguiente comando sustituyendo <strong>drupal9.localhost</strong>, por el nombre o dominio con el que vamos a trabajar.</p> <pre> sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/drupal9.localhost.key -out /etc/ssl/drupal9.localhost.crt</pre> <p>         <strong>Explicación: </strong></p> <p>              Este código nos generará la clave privada <strong>drupal9.localhost</strong><strong>.key</strong>, que se utiliza para generar el certificado <strong>drupal9.localhost</strong><strong>.crt, </strong>con una duración de un año  <strong>-days 365</strong>, y guarda dichos certificados en este caso en la ubicación que le hemos especificado, o sea dentro de<strong> /etc/ssl/.</strong></p> <p><strong>        </strong> Una vez ejecutado el código, se mostrarán en pantalla varias preguntas que tendremos que rellenar e ir haciendo clic en aceptar, por cada respuesta que hayamos introducido:</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 36.46%;" data-ratio="36.46" data-b-token="b-0368a737f0c" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="LAMP Drupal | 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-63300417d3eef.png?itok=dfegZSpy" 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="237" typeof="foaf:Image" /></div></div> <h3>     3.- Permisos y descarga de Drupal</h3> <p>          Lo primero que tendremos que hacer en esta ocasión, es crear la carpeta donde se alojará nuestro Drupal 9, que instalaremos usando Composer, y que colocaremos dentro de la carpeta publica <strong>html</strong> del Apache, para ello ejecutaremos el siguiente comando:</p> <pre> sudo mkdir -p /var/www/html/<strong>drupal9.localhost</strong></pre> <p>     A continuación, daremos los permisos necesarios a nuestro usuario de apache para que podamos realizar la instalación sin compliacaiones:</p> <pre> cd /var/www/html/</pre> <pre> sudo chown -R www-data:www-data <strong>drupal9.localhost</strong>/</pre> <p>  Ya podremos empezar la descarga de nuestros archivos de instalación de Drupal 9 con Composer utilizando el siguiente comando y sustituyendo la última parte por el nombre de nuestra carpeta recién creada.</p> <pre> composer create-project drupal/recommended-project <strong>drupal9.localhost</strong></pre> <p>     De inmediato debería comenzar la descarga de los archivos de instalación desde el repositorio de Drupal.</p> <h3>     4.- Configuración del Virtual Host</h3> <p>          Una vez terminada la descarga de los archivos de Drupal, tendremos que configurar el acceso para poder comenzar con la instalación usando el navegador, para ello, crearemos el archivo de configuración correspondiente.</p> <pre> sudo nano /etc/apache2/sites-available/<strong>drupal9.localhost.conf</strong></pre> <p>     A continuación copiamos dentro el siguiente código:</p> <pre> &lt;VirtualHost *:80&gt;                 ServerName www.drupal9.localhost                 DocumentRoot /var/www/html/drupal9.localhost/web                 # Redirect http to https                 RedirectMatch 301 (.*) https://www.drupal9.localhost$1         &lt;/VirtualHost&gt;         &lt;VirtualHost _default_:443&gt;                 # Server Info                 ServerName www.drupal9.localhost                 ServerAlias drupal9.localhost                 ServerAdmin admin@drupal9.localhost                 # Web root                 DocumentRoot /var/www/html/drupal9.localhost/web                 # Log configuration                 ErrorLog ${APACHE_LOG_DIR}/drupal9.localhost-error.log                 CustomLog ${APACHE_LOG_DIR}/drupal9.localhost-access.log combined                 #   Enable/Disable SSL for this virtual host.                 SSLEngine on                 # Self signed SSL Certificate file                 SSLCertificateFile      /etc/ssl/drupal9.localhost.crt                 SSLCertificateKeyFile /etc/ssl/drupal9.localhost.key                 &lt;Directory "/var/www/html/drupal9.localhost/web"&gt;                         Options FollowSymLinks                         AllowOverride All                         Require all granted                 &lt;/Directory&gt;                 &lt;FilesMatch "\.(cgi|shtml|phtml|php)$"&gt;                                 SSLOptions +StdEnvVars                 &lt;/FilesMatch&gt;                 &lt;Directory /usr/lib/cgi-bin&gt;                                 SSLOptions +StdEnvVars                 &lt;/Directory&gt;                 BrowserMatch "MSIE [2-6]" \                                 nokeepalive ssl-unclean-shutdown \                                 downgrade-1.0 force-response-1.0                 # MSIE 7 and newer should be able to use keepalive                 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown         &lt;/VirtualHost&gt;</pre> <p>     Reemplace el nombre de dominio <strong>www.drupal9.localhost</strong> con el nombre de dominio de su sitio web Drupal.</p> <p>     Guarda el archivo y cierra.</p> <p>     Ahora comprueba si todo está correcto, ejecutando el siguiente comando:</p> <pre> apachectl configtest</pre> <p>    Si ves el mensaje <strong>"Syntax ok"</strong>, entonces la configuración de Apache es correcta.</p> <p>    Entonces podremos activar el Host Virtual de Drupal y reiniciar el servidor para que se ejecuten los cambios:</p> <pre> a2ensite drupal9.localhost</pre> <pre> sudo service apache2 restart</pre> </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">Mié, 08/03/2023 - 17:44</span> Wed, 08 Mar 2023 16:44:29 +0000 webmaster 260 at https://drupaladicto.com LAMP Server | Instalación con WSL2 en Windows 10 (1era Parte) https://drupaladicto.com/curso/entornos-locales/lamp-server-instalacion-con-wsl2-en-windows-10-1era-parte <span class="field field--name-title field--type-string field--label-hidden">LAMP Server | Instalación con WSL2 en Windows 10 (1era Parte)</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-928 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-928 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-928 .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-928"> <section id="video-only-928" 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-648-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-648-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-648-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/jiyN-qhYPRU&amp;max_width=0&amp;max_height=0&amp;hash=AIPM3z7Qnt9uX_61Mdg-XWYw0-Trx622QL9gzPRGc5w" 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-648-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-1152" 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/jiyN-qhYPRU" target="_blank">HAZ CLIC AQUI</a></strong></h2> <p>      Antes de trabajar en cualquier proyecto web, deberíamos contar con un entorno completo, que incluya todo lo necesario para que nuestra aplicación funcione correctamente, además de ofrecernos un lugar estable donde podamos realizar todo tipo de pruebas y procedimientos.</p> <p>     Aunque ya hemos explicado en otro artículo todo lo que necesitas saber sobre <a href="/actualidad/como-instalar-drupal-9-usando-docker-en-windows-10-home" hreflang="es">Cómo instalar Drupal 9 usando Docker en Windows 10 Home</a>, hoy te voy a contar cómo realizar la instalación completa de un servidor Linux que incluya, además, el Apache, Mysql y PHP, con la respectiva configuración del dominio para que puedas instalar Drupal en tu servidor local.</p> <h2>   Cómo Instalar LAMP usando WSL2 en Windows 10</h2> <h3>      Paso 1 Instalación y configuración de WSL2 en Windows</h3> <p>          Para no repetirme, puedes leer todo el proceso de instalación y configuración del WSL2 para Windows 10, en el artículo <a href="/actualidad/como-instalar-drupal-9-usando-docker-en-windows-10-home" target="_blank">Cómo instalar Drupal 9 usando Docker en Windows 10 Home (1era Parte)</a>, y una vez hayas realizado la instalación podrás continuar con el siguiente paso.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 45.38%;" data-ratio="45.38" data-b-token="b-540b576ab28" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="LAMP Drupal | 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-632fffc62757c.gif?itok=F1HU0UnK" 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="295" typeof="foaf:Image" /></div></div> <p>          Además, antes de continuar, te recomiendo instalar la nueva terminal de Windows 10, para que puedas realizar operaciones simultáneas usando diferentes pestañas, te cuento cómo hacerlo en este artículo <a href="/actualidad/instalacion-y-configuracion-de-terminal-windows">Instalación y configuración de Terminal Windows</a></p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div data-b-token="b-05759bedf3c" class="media media--blazy media--image media--ratio media--ratio--32 is-b-loading"><img alt="LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="LAMP Drupal | 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-632ffff24f342.png?itok=qd8re8sj" 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="600" height="400" typeof="foaf:Image" /></div></div> <p>     Ahora, antes de continuar, debe saber que puede omitir casi todos los pasos a continuación y simplemente hacer: <strong>sudo apt install lamp-server ^ phpmyadmin</strong>. Sin embargo, yo intenté hacerlo de esta forma y me dio varios errores, por lo que, en mi opinión recomiendo la opción "Larga", que además te dará control total sobre tu servidor y servicios instalados. </p> <h3><strong>      Paso 2 - crear un usuario No Root para la ejecución del código:</strong></h3> <p>          El usuario <strong>root</strong> es el usuario administrativo en un entorno Linux que tiene privilegios muy amplios. Debido a su inmenso poder, no se recomienda usarlo de forma regular. </p> <p>          El siguiente paso es configurar una cuenta de usuario alternativa, con un alcance de influencia reducido para el trabajo diario. Y podremos usar el la opción SUDO, cuando necesitemos permisos especiales sin tener que cambiar de usuario.</p> <p>          Con el siguiente código, voy a crear un usuario nuevo, que no será root, y que utilizaremos de aquí en adelante para el resto de la configuración.</p> <p>          Como por defecto en la instalación de ubuntu hemos creado el usuario root, ejecutaremos el siguiente comando con el prefijo sudo, y una vez complementada la información del nuevo usuario, que si no quieres rellenar la info puedes presionar ENTER en cada pregunta, como he hecho para este ejemplo.</p> <p>          Luego abriremos otra pestaña en la terminal de windows, si no la tienes instalada aprende cómo hacerlo en <a href="/actualidad/instalacion-y-configuracion-de-terminal-windows" target="_blank">Instalación y configuración de Terminal Windows</a>,  para no perder, de momento los accesos como root y luego continuaremos con el procedimiento:</p> <pre> adduser noroot_user</pre> <p> </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 56.77%;" data-ratio="56.77" data-b-token="b-f0102e5407e" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="LAMP Drupal | 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-6330001540872.png?itok=AQHZl5bD" 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="352" typeof="foaf:Image" /></div></div> <p>          Una vez creado el nuevo usuario, abriremos la nueva pestaña en la terminal y ejecutaremos el siguiente código, que nos permitirá acceder con los datos de nuestro nuevo usuario:</p> <pre> su - noroot_user</pre> <p> </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 56.77%;" data-ratio="56.77" data-b-token="b-906286d47c3" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="LAMP Drupal | 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-6330003611a89.png?itok=zoWrFgyk" 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="352" typeof="foaf:Image" /></div></div> <h3>     Paso 3 - Otorgarle privilegios root a nuestro nuevo usuario:     </h3> <p>          Ahora, tenemos una nueva cuenta de usuario con privilegios de cuenta regulares. Sin embargo, es posible que a veces necesitemos realizar tareas administrativas. Para evitar tener que cerrar la sesión de nuestro usuario normal y volver a iniciarla como la cuenta root, podemos configurar lo que se conoce como "superusuario" o privilegios de root para nuestra cuenta normal. Esto permitirá a nuestro usuario normal ejecutar comandos con privilegios administrativos poniendo la palabra sudo antes de cada comando.</p> <p>          Como todavía tenemos abierta la pestaña de la terminal, donde habíamos iniciado sesión como root, vamos a ejecutar desde allí el siguiente código para otorgar los nuevos privilegios a nuestro usuario noroot_user:</p> <pre> usermod -aG sudo noroot_user</pre> <p>          Una vez otorgados los permisos de root, tendremos que cerrar la otra pestaña, donde está el usuario noroot_user, para poder comenzar a utilizarlos con los permisos recién adquiridos.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 62.42%;" data-ratio="62.42" data-b-token="b-954e411f891" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="LAMP Drupal | 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-633000589ed91.png?itok=PPASKGfS" 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="387" typeof="foaf:Image" /></div></div> <h3>     Paso 4 - Instalación del Servidor Apache</h3> <p>         Para instalar apache, vamos a necesitar dos comando:</p> <pre> sudo apt install apache2</pre> <pre> sudo service apache2 start</pre> <p>     Una vez instalado el servidor Apache, probemos que todo funciona, accediendo en el navegador a la url <strong>http://localhost. Deberíamos ver en pantalla la siguiente imagen:</strong></p> <p> </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 71.5%;" data-ratio="71.5" data-b-token="b-d72c4fe86d6" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="LAMP Drupal | 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-6330007a7ca98.png?itok=H7iSZnBY" 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="600" height="429" typeof="foaf:Image" /></div></div> <p>     Si todo es correcto, entonces podremos continuar y habilitaremos los módulos que vamos a necesitar, como el "Rewirte" o el "SSL"</p> <pre> sudo a2enmod rewrite</pre> <pre> sudo a2enmod ssl</pre> <p>     Y a continuación, para que se efectúen los cambios en el servidor, necesitaremos reiniciarlo usando el comando:</p> <pre> sudo service apache2 restart</pre> <p>     Llegado a este punto, te recomendaría ajustar la configuración de Apache para que los permisos coincidan con su nombre de usuario. En otras palabras, cuando hagas una lista de archivos, esta configuración de nombre de usuario que ingrese en Apache será la misma que la del propietario de los archivos en su sistema de archivos Linux. De esa forma, Apache tendrá permisos para modificar los archivos y carpetas de tu sitio. Si no lo haces, es posible que elementos como Grav y WP no funcionen correctamente o no funcionen en absoluto. Así que dirígete a este archivo y haz el siguiente cambio:</p> <pre> sudo nano /etc/apache2/envvars</pre> <pre> export APACHE_RUN_USER=your_user</pre> <pre> export APACHE_RUN_GROUP=your_user</pre> <p>     Y a continuación, una vez hayas editado el archivo envvars, para que se efectúen los cambios en el servidor, necesitaremos reiniciarlo usando el comando:</p> <pre> sudo service apache2 restart</pre> <p>     Ahora podemos comprobar si ambos módulos han sido activados correctamente, ejecutando el siguiente comando:</p> <pre> apache2ctl -M | egrep 'ssl|rewrite'</pre> <p>     Entonces en nuestra consola, si todo está correcto, deberíamos ver el siguiente mensaje:</p> <pre> #Enabled  rewrite_module (shared)  ssl_module (shared</pre> <h3>     Paso 5 - Instalación y configuración del Servidor de Base de datos MariaDB</h3> <p>          Lo primero que necesitaremos es instalar el servidor, ejecutando el siguiente comando:</p> <pre> sudo apt install mariadb-server mariadb-client</pre> <p><strong>     Importante: No se le pedirá que cree una contraseña, pero en una instalación local está bien. Y técnicamente no es inseguro de todos modos, ya que significa que solo aquellos con privilegios de sudo pueden acceder al servidor MySQL.</strong></p> <p>     Ahora necesitamos iniciar el servidor MySQL ejecutando el siguiente comando:</p> <pre> sudo service mysql start</pre> <h3>     Paso 6 - Instalación y configuración PHP</h3> <p>          En el caso de PHP, además de instalar la versión que vamos a utilizar, tendremos que realizar algunas modificaciones, como la activación de varias librerías, y otras modificaciones recomendadas para trabajar con Drupal, como el tiempo de ejecución o el máximo de tamaño de subida de archivos, pero vamos por partes, primero instalaremos php y activaremos algunas librerías necesarias:</p> <pre> sudo apt install php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl -y</pre> <p>          Es posible que también deba instalar módulos según los requisitos de su aplicación. Utilice el siguiente comando para buscar módulos PHP 7 disponibles en el repositorio de paquetes.</p> <pre> sudo apt-cache search php7*</pre> <p>          En nuestro caso, vamos a instalar los siguientes "módulos" de php:</p> <pre> sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd  php-mbstring php-curl php-xml php-pear php-bcmath</pre> <p>     Por últimos, vamos a realizar algunos de los cambios de configuración del PHP.ini que nos ayudarán y evitarán posibles errores una vez instalemos nuestro Drupal. Para ello, abriremos el archivo de configuración de php "php.ini" y realizaremos las modificaciones correspondientes:</p> <pre> sudo nano /etc/php/7.4/apache2/php.ini</pre> <ul><li>max_execution_time = 600</li> <li>post_max_size = 64M</li> <li>short_open_tag<br />    Default Value: On</li> <li>memory_limit = -1</li> <li>upload_max_filesize = 100M</li> </ul><p>     Una vez actualizados los cambios en el archivo de configuración de apache, volveremos a reiniciar nuestro servidor para que se guarden dichos cambios, para ello ejecutaremos el comando:</p> <pre> sudo service apache2 restart</pre> <p>     Ahora que PHP está instalado, para probar si está funcionando, cree un archivo de prueba llamado <strong>phpinfo.php</strong> en el directorio raíz predeterminado de Apache2…. (<strong>/ var / www / html /</strong>)</p> <pre> sudo nano /var/www/html/phpinfo.php</pre> <p>     Luego, escriba el contenido a continuación y guarde el archivo.</p> <pre> &lt;?php phpinfo( ); ?&gt;</pre> <p>     A continuación, abra su navegador y busque el nombre de host o la dirección IP del servidor seguido de <strong>phpinfo.php</strong></p> <p>http://localhost/phpinfo.php</p> <p>Debería ver la página de prueba predeterminada de PHP, como esta:</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 67.08%;" data-ratio="67.08" data-b-token="b-7933f8dc4b4" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="LAMP Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="LAMP Drupal | 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-6330013689a35.png?itok=-4iK_ZnT" 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="436" typeof="foaf:Image" /></div></div> <p>     Una vez comprobado que todo está correcto, tendremos que borrar este archivo ya que es información que implica riesgos de seguridad, para ello ejecutaremos el siguiente comando:</p> <pre> rm -f /var/www/html/info.php</pre> <h3>      Paso 7 - Instalación Interfaz Usuario para administrar MySql</h3> <p>          Aunque según los requerimientos de tu aplicación, puede que no te haga falta un entorno gráfico, para la administración de tus bases de datos y tablas, porque lo realizarás usando comandos de tu consola, te recomiendo instalar esta pequeña aplicación que te servirá de ayuda:</p> <pre> sudo apt install adminer</pre> <p>     Casi hemos terminado. Hay un problema para todos aquellos que cambiaron la configuración de usuario / grupo de Apache anterior. El administrador accede y escribe en su carpeta de sesiones de PHP, por lo que debe otorgarle a su usuario (el usuario que configuró en Apache) los permisos de la carpeta correspondiente a esa carpeta. Puedes realizar el cambio ejecutando el siguiente comando:</p> <pre> cd /var/lib/php</pre> <pre> sudo chown -R your_user:your_user sessions</pre> <p>     Ahora sí, lo último que nos faltará es activar Adminer, reiniciar Apache nuevamente, por supuesto, y luego verlo. Comience con estos dos comandos:</p> <pre> sudo a2enconf adminer.conf</pre> <pre> sudo service apache2 restart</pre> <p>     Para comprobar el Adminer funciona correctamente escribe en el navegador la url <strong>http://localhost/adminer/</strong></p> <p>     ¡Pero necesitamos un nombre de usuario para iniciar sesión ahora! Así que sigamos adelante y hagamos eso. <strong>Recuerde que todo esto es solo para desarrolladores locales</strong>, por lo que las preocupaciones de seguridad habituales relacionadas con la creación de un superusuario no se aplican realmente. Nunca hagas esto en un sitio en vivo. Siempre.</p> <p>     Así que inicie MySQL así:</p> <pre> sudo mysql</pre> <p>    Luego ingrese los siguientes comandos, Primero creamos el usuario que funcionará como root, luego le daremos los permisos para que pueda hacer cualquier tarea con las bases de datos, a continuación reseteamos la tabla de permisos y por último, saldremos de servidor de base de datos:</p> <pre> CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'your_password';</pre> <pre> GRANT ALL PRIVILEGES ON * . * TO 'user_name'@'localhost';</pre> <pre> flush privileges;</pre> <pre> exit</pre> <p>     Ahora que haz creado un superusuario, ya podrás iniciar sesión en Adminer y comenzar a trabajar con tus bases de datos y tablas.</p> <p><strong>* Usuario con permisos específicos</strong></p> <p><strong>     </strong>Aunque tenemos un <strong>Super usuario</strong> con el cuál podremos realizar, todas las operaciones en nuestro servidor de base de datos, es <strong>muy recomendable</strong> limitar los accesos a la base de datos específica en cada proyecto. Por esta razón, a continuación vamos a crear un usuario y una base de datos específica para nuestro proyecto.</p> <p>     Primero nos vamos a loguear como Super usuario y una vez dentro, ejecutaremos cada una de las líneas siguientes, en las que primero crearemos la base de datos, luego el usuario con sus datos de acceso, a continuación le daremos todos los permisos, específicos para la tabla en concreto y por último el reseteo de la tabla de permisos:</p> <pre> sudo mysql;</pre> <pre> CREATE DATABASE drupaldb;</pre> <pre> CREATE USER drupaluser@localhost IDENTIFIED BY 'drupaluser@';</pre> <pre> GRANT ALL PRIVILEGES ON drupaldb.* to drupaluser@localhost identified by 'drupaluser@';</pre> <pre> FLUSH PRIVILEGES;</pre> <pre> EXIT</pre> <p>     Si queremos ver el listado de las bases de datos que tenemos creadas al momento, entraremos a MySql y luego ejecutamos el siguiente comando:</p> <pre> SHOW DATABASES;</pre> <p>     Para borrar una base de datos <strong>(Cuidado porque se perderá toda la información)</strong>, ejecutaremos:</p> <pre> DROP DATABASE mi_bd_para_borrar;</pre> <p>     Para ver el listado de usuarios creados, ejecutaremos el siguiente comando:</p> <pre> SELECT User FROM mysql.user;</pre> <p>     Para borrar un usuario específico:</p> <pre> DROP USER 'usuario'@'localhost';</pre> <h3>     Paso 8 - Configuración del Virtual Host y el SSL</h3> <p>          Para poder trabajar con certificados SSL, es necesario prestar atención en varios detalles previos, por eso, he preferido hacerlo en otro artículo con su video propio, que <a href="/actualidad/como-instalar-un-certificado-ssl-y-activar-https-en-drupal-9" target="_blank">podrás leer y ver haciendo clic aqui</a>  <a href="/actualidad/como-instalar-un-certificado-ssl-y-activar-https-en-drupal-9" target="_blank">Ver siguiente artículo</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">Mié, 08/03/2023 - 17:38</span> Wed, 08 Mar 2023 16:38:11 +0000 webmaster 259 at https://drupaladicto.com