servidor
LEMP VPS | Guía Completa
Instalar Drupal 9 en Ubuntu 20.04 con Lando y WSL2 en Windows 11
Si no ves el video, puedes refrescar el navegador, presionando (Ctrl+Shift+R | Ctrl+F5 o Shift+F5), o abrirlo directamente desde el Canal de Youtube... HAZ CLIC AQUI
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.
Qué es Lando
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.
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.
Prerrequisitos para instalar Lando con WSL2
- Tener instalado y configurado el WSL2 ( Aprende cómo hacerlo aquí )
- Tener instalado y configurado el Docker Desktop for Windows ( NO INSTALAR DOCKER DENTRO DEL WSL2 ) - Página Oficial de Docker
Cómo instalar Lando en Ubuntu 20.04 utilizando WSL2 en Windows 11
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 Haz Clic aqui. Una vez iniciada la sesión con nuestro usuario ejecutaremos los siguientes comandos para realizar la instalación de Lando.
sudo wget https://files.lando.dev/installer/lando-x64-stable.deb
sudo dpkg -i lando-x64-stable.deb
Corrección de errores durante la instalación:

Instalar Docker-CE es uno de los requisitos para que Lando funcione correctamente, para saber cómo descargarlo e instalarlo en WSL2 Haz clic aquí
Es posible que tengas algún error durante el proceso de instalación relacionado con los permisos de instalación, para solucionarlo Haz clic aquí
Cómo instalar Drupal 9 utilizando Lando en Ubuntu con WSL2 y Windows 11
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.
Si hacemos una búsqueda rápida de Cómo instalar Drupal 9 usando Composer, encontraremos un enlace a al Página Oficial de Drupal, 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.

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.
Si vamos a la Página Oficial de Lando, 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.

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.

Solución
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:
Paso 1 - Descargar una distribución de Drupal con todo lo necesario
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. Haz clic aquí para descargar el Drupal 9
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:
git clone https://github.com/drupal-composer/drupal-project.git/ drupal-gatsby

Paso 2 - Descomprimir los archivos e iniciar el Lando
Una vez iniciemos sesión con nuestro usuario "NOROOT", colocaremos los archivos descargados y descomprimidos en esta ruta
/home/username/projects/yourproject
A continuación nos moveremos dentro de la carpeta y luego ejecutaremos el comando de inicia Lando
lando init
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.
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.

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.

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.

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.

ERROR DE PERMISOS
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.


Si estás utilizando el usuario NOROOT, tendrás que darle permisos a Docker desde tu usuario ROOT, Haz clic aqui para saber cómo
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.

Cómo arrancar nuestro proyecto con Lando
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.
lando start
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.

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.
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.
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.
lando composer install
Y de inmediato comenzarán a descargarse todos los archivos definidos en el composer.json, dentro del Drupal.

Si ahora ejecutamos nuevamente el comando " lando start " podremos comprobar que accederemos a nuestro drupal sin ningún error.


Cómo puedo saber los datos de mis servidores (Base de datos, versión de Nginx, etc)
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
lando info
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)

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.

Cómo modificar la configuración por defecto de Lando
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?
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.
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.
En la siguiente imagen, he modificado la versión del PHP a "5.6" en lugar de "7.4" que se descargó por defecto.

Para que los cambios se realicen, será necesario detener y volver a arrancar lando con los comandos
lando stop lando start
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.

Si quieres saber otro comando que ofrece Lando, por ejemplo, para acceder a tus bases de datos, puedes ejecutar el siguiente comando
lando
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 <file> 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
Drupal 9 - Ready to Work
Si te interesa trabajar en el desarrollo de páginas web, utilizando el CMS Drupal, te ofrezco la oportunidad de aprender, todo lo que necesitarás para lograr ese objetivo.
"DRUPAL 9 READY TO WORK"
Diridigo a tod@s aquell@s que estén interesad@s en el desarrollo de aplicaciones web, utilizando este potente CMS, cuyo núcleo está basado en el Framework Symfony, a partir de Drupal 8.
El propósito fundamental de este curso-taller, es conectar en tiempo real con tod@s l@s participantes, durante 2 horas, cada día, en las cuales trabajaremos, paso a paso, en el desarrollo de un proyecto completo, donde abarcaremos todas las posibles fases del mismo, desde la configuración de un entorno para el desarrollo, pasando por el uso de un repositorio Git, la integración continua, por medio de drush y terminando con la publicación del proyecto, en un entorno de producción.
Además, todos los alumnos tendrán acceso a documentación y videos específicos relacionados con el curso, en español, que no estarán disponibles en ninguna otra plataforma o canal público.
Es por esta razón, que para garantizar al máximo el tiempo de atención a cada alumno y que todos podamos avanzar según el plan de trabajo diario, el número total de participantes admitidos será de SOLO 10 PERSONAS.
REQUISITOS:
- Nociones básicas sobre desarrollo o diseño web.
- Ordenador (Computadora) con el sistema Windows 10 instalado.
- Conexión a internet lo suficientemente rápida para soportar Video Llamadas.
MODALIDAD DEL CURSO:
Todas las sesiones del curso se realizarán, en tiempo real, como si estuvieramos en un aula, a través de Video llamada, ya sea por medio de Skype, Zoom o similar, para mantener una comunicación fluida e interacción, entre todos los participantes.
SOPORTE:
Todos los participantes del curso, tendrán acceso a varios videos y documentación relacionada con cada una de las sesiones, además de acceso al canal de Slack, para comentar las dudas que vayan apareciendo entre cada una de las sesiones.
DURACIÓN DEL CURSO:
LUNES A VIERNES (4 SEMANAS)
40 horas, repartidas en 5 sesiones semanales, de 2 horas cada una, en horario a elegir de 18:00 a 20:00 ó de 20:00 a 22:00, hora de España
PRECIO Y FORMA DE PAGO:
El coste del curso será de 500€ y el método de pago a través de Paypal o transferencia bancaria.
Precio especial para grupos y/o empresas
Para más información, contactar al Whatsapp: +34 644 065 036, para confirmar la disponibilidad del curso, ya que el grupo será muy limitado.
FECHA DE INICIO
El curso comienza durante la primera semana de cada mes.
Sólo se admiten nuevos estudiantes hasta el 5to día de clases.
CONTENIDO DEL CURSO
PRIMERA SEMANA:
Sesión 1 - Configuración del entorno
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán a configurar el entorno de desarrollo LAMP, para sus proyectos con Drupal 9, utilizando WSL2, Consola de Windows mejorada, Docker for windows, Composer. También podrán acceder a otras opciones, que podrían ajustarse mejor al sistema operativo de cada alumno.
Sesión 2 - Descarga y configuración de Drupal 9
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán a descargar e instalar Drupal 9, utilizando Composer y Drush, además de algunos módulos que facilitarán las tareas de desarrollo.
Sesión 3 - Repositorio y control de versiones
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán sobre el uso de un repositorio y la importancia del control de versiones, para las tareas de desarrollo, así como los comandos más utilizados para crear ramas, subir el código, etc. a través de la consola de comandos.
Sesión 4 - Usuarios, permisos y roles
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán acerca de la creación y configuración de usuarios, roles y permisos, comprobando las diferentes maneras de interactuar mediante la interfaz como administradores y como usuarios con acceso limitado.
Sesión 5 - Contenidos y tipos de contenido
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán a crear y configurar varios tipos de contenido, conocerán las diferentes opciones para sus formularios, presentación y conexión entre varios contenidos.
SEGUNDA SEMANA:
Sesión 1 - Themes en Drupal
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán sobre los Themes o plantillas en Drupal 9, activación, descarga y configuración.
Sesión 2 - Vistas
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán sobre el uso, creación y configuración de Vistas en Drupal 9, tipos, permisos, modalidades y fitros.
Sesión 3 - Bloques
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán sobre el uso, creación y configuración de los bloques en Drupal 9, tipos, permisos, formatos.
Sesión 4 - Taxonomías, clasficación y relaciones en los contenidos
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán acerca de la claficación de contenidos, utilizando los términos o taxonomías, así como la forma de crear relaciones entre ellos, para sacar mayor provecho a las vistas.
Sesión 5 - Paragraphs
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán a crear y configurar varios tipos de contenido, utilizando el módulo Paragraphs, que desde su aparición en Drupal 8 revolucionó por completo la manera en que se contruyen las estructuras con contenidos y usuarios, ofreciendo mayores ventajas y opciones en cada caso.
TERCERA SEMANA:
Sesión 1 - Módulos personalizados
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán a crear un módulo personalizado, entendiendo las diferentes ventajas y configuraciones relacionadas con el mismo para poder implementarlos en sus desarrollos.
Sesión 2 - Tema personalizado
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán a crear un Subtheme o tema personalizado, utilizando bootstrap, en el que podrán manipular todos los elementos que se presentan en el proyecto Drupal 9, a través de modificaciones en sus plantillas, archivos CSS o Javascript.
Sesión 3 - Plantillas Twig
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán sobre cómo trabajar con plantillas Twig en Drupal 9, aprenderán a activar el modo desarrollo de Drupal, la forma de configurar el entorno local, y las principales opciones disponibles al trabajar con plantillas Twig, como campos condicionles y declaración de variables.
Sesión 4 - Uso de Urls personalizadas
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán acerca de la creación e implementación de urls automatizadas y la creación de patrones, para tipos de contenidos específicos, así como la generación automática en masa de dichas urls.
Sesión 5 - Formularios
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán a configurar el formulario por defecto de Drupal, así como instalar y configurar otros tipos de formularios utlizando el módulo webform.
CUARTA SEMANA:
Sesión 1 - Configuración de Servidores
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán a conectarse con un servidor de producción, donde podrán publicar su proyecto de Drupal 9, utilizando el código alojado en el repositorio, para mantener la configuración de su proyecto actualizada a través de comandos de Drush.
Sesión 2 - CMI Drupal (Integración continua)
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán a exportar e importar sus configuraciones entre los diferntes entornos, local y producción, para mantener al día sus proyectos una vez hayan sido publicados.
Sesión 3 - Multi-idioma
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán sobre configurar la web de drupal para que soporte contenidos en varios idiomas y ofrecer esta posibilidad a sus clientes o usuarios en general.
Sesión 4 - Introducción al SEO
Durante el tiempo transcurrido en esta sesión formativa, los alumnos aprenderán acerca de la instalación y configuración de varios módulos relacionados con el posicionamiento SEO.
Sesión 5 - Mejoras y cierre del curso
Durante el tiempo transcurrido en esta sesión formativa, los alumnos tendrán la oportunidad de exponer dudas relacionadas con nuevas funcionalidades específicas de cada proyecto, para unificar criterios entre todos y prepararse para su nueva etapa como desarrolladores web.
Configurar un entorno de desarrollo PHP para Symfony con Windows y WSL2
Ahora que ya sabemos Cómo instalar una distribución Linux dentro de Windows 10 usando el WSL, 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.
La idea es facilitarnos la vida y que podamos implementar todas las herramientas necesarias sin la necesidad de invertir demasiado tiempo en ello.
Por esta razón, hoy vamos a explicar cómo podremos configurar un entorno PHP para desarrollar un proyecto utilizando Symfony; uno de los Frameworks más potentes, robustos y seguros que existen en el mercado.
Aclaración antes de seguir
Al momento de crear este artículo, existe un conocido error 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:
sudo apt-mark hold libc6
Tan pronto como hayamos ejecutado el anterior comando, podremos actualizar los paquetes de ubuntu ejecutando los siguiente:
sudo apt update
sudo apt upgrade
Lo próximo que instalemos son las dependencias centrales para ejecutar la plataforma eZ (y muchas otras aplicaciones Symfony):
sudo apt install composer php-xml php-intl php-gd php-curl php-fpm
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:
sudo apt install mariadb-server php-mysql
Ya estamos listos para arrancar la instancia del servidor MariaDB e iniciar sesión como usuario root:
sudo service mysql start
sudo mysql
Vamos a añadir una base de datos para la plataforma eZ, Por lo que ejecutamos las siguientes declaraciones SQL:
CREATE DATABASE ezp; GRANT ALL ON ezp.* TO 'ezp'@'localhost' IDENTIFIED BY 'wsl2ezp'; FLUSH PRIVILEGES; EXIT;
Y ahora comprobamos que podemos acceder a la base de datos:
mysql -uezp -pwsl2ezp ezp
Ahora ya tenemos un entorno Linux con PHP, MariaDB y el administrador de paquetes Composer listo para funcionar:
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:
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
Instalando el CLI de Symfony
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
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:
wget https://get.symfony.com/cli/installer -O - | bash
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:
sudo mv /home/nombre_usuario/.symfony/bin/symfony /usr/local/bin/symfony
Ahora podemos verificar que nuestra pila está funcionando creando una nueva aplicación Symfony hello world y ejecutando el servidor web:
symfony new hola-mundo cd hola-mundo symfony serve
Ha llegado el momento de abrir una ventana del navegador en http: // localhost: 8000 / 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.
Para obtener más detalles sobre cómo configurar TLS, múltiples versiones de PHP, etc., diríjase a los documentos de Symfony.
Instalación de la Plataforma eZ y acceso a archivos
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 instalar una copia de la plataforma eZ y para ello utilizaremos. Éste se encargará de clonar los archivos desde el repositorio, verificará por nosotros las actualizaciones disponibles y a continuación instalar los paquetes necesarios usando:
composer create-project ezsystems/ezplatform ezplatform ^3 cd ezplatform
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:
echo "DATABASE_URL=mysql://ezp:wsl2ezp@127.0.0.1:3306/ezp?serverVersion=10.3" > .env.local composer run-script ezplatform-install
Cuando se haya completado el proceso de instalación, podremos ingresar al directorio del proyecto e iniciar el servidor web Symfony:
symfony serve
El resultado mostrará que el servidor web Symfony detecta y usa la copia instalada de PHP-FPM:
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:
explorer.exe .
Desde aquí, podrás recoger las cosas y usar cualquier IDE en Windows (¡o incluso notepad.exe!) Que necesites usar para tu desarrollo.
Cómo Instalar LAMP usando WSL2 en Windows 10 (1era Parte)
Si no ves el video, puedes refrescar el navegador, presionando (Ctrl+Shift+R | Ctrl+F5 o Shift+F5), o abrirlo directamente desde el Canal de Youtube... HAZ CLIC AQUI
Antes de trabajar en cualquier proyecto web, deberíamos contar con un entorno completo, que incluya todo lo necesario para que nuestra aplicación funcione correctamente, además de ofrecernos un lugar estable donde podamos realizar todo tipo de pruebas y procedimientos.
Aunque ya hemos explicado en otro artículo todo lo que necesitas saber sobre Cómo instalar Drupal 9 usando Docker en Windows 10 Home, hoy te voy a contar cómo realizar la instalación completa de un servidor Linux que incluya, además, el Apache, Mysql y PHP, con la respectiva configuración del dominio para que puedas instalar Drupal en tu servidor local.
Cómo Instalar LAMP usando WSL2 en Windows 10
Paso 1 Instalación y configuración de WSL2 en Windows
Para no repetirme, puedes leer todo el proceso de instalación y configuración del WSL2 para Windows 10, en el artículo Cómo instalar Drupal 9 usando Docker en Windows 10 Home (1era Parte), y una vez hayas realizado la instalación podrás continuar con el siguiente paso.

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

Ahora, antes de continuar, debe saber que puede omitir casi todos los pasos a continuación y simplemente hacer: sudo apt install lamp-server ^ phpmyadmin. Sin embargo, yo intenté hacerlo de esta forma y me dio varios errores, por lo que, en mi opinión recomiendo la opción "Larga", que además te dará control total sobre tu servidor y servicios instalados.
Paso 2 - crear un usuario No Root para la ejecución del código:
El usuario root es el usuario administrativo en un entorno Linux que tiene privilegios muy amplios. Debido a su inmenso poder, no se recomienda usarlo de forma regular.
El siguiente paso es configurar una cuenta de usuario alternativa, con un alcance de influencia reducido para el trabajo diario. Y podremos usar el la opción SUDO, cuando necesitemos permisos especiales sin tener que cambiar de usuario.
Con el siguiente código, voy a crear un usuario nuevo, que no será root, y que utilizaremos de aquí en adelante para el resto de la configuración.
Como por defecto en la instalación de ubuntu hemos creado el usuario root, ejecutaremos el siguiente comando con el prefijo sudo, y una vez complementada la información del nuevo usuario, que si no quieres rellenar la info puedes presionar ENTER en cada pregunta, como he hecho para este ejemplo.
Luego abriremos otra pestaña en la terminal de windows, si no la tienes instalada aprende cómo hacerlo en Instalación y configuración de Terminal Windows, para no perder, de momento los accesos como root y luego continuaremos con el procedimiento:
adduser noroot_user

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

Paso 3 - Otorgarle privilegios root a nuestro nuevo usuario:
Ahora, tenemos una nueva cuenta de usuario con privilegios de cuenta regulares. Sin embargo, es posible que a veces necesitemos realizar tareas administrativas. Para evitar tener que cerrar la sesión de nuestro usuario normal y volver a iniciarla como la cuenta root, podemos configurar lo que se conoce como "superusuario" o privilegios de root para nuestra cuenta normal. Esto permitirá a nuestro usuario normal ejecutar comandos con privilegios administrativos poniendo la palabra sudo antes de cada comando.
Como todavía tenemos abierta la pestaña de la terminal, donde habíamos iniciado sesión como root, vamos a ejecutar desde allí el siguiente código para otorgar los nuevos privilegios a nuestro usuario noroot_user:
usermod -aG sudo noroot_user
Una vez otorgados los permisos de root, tendremos que cerrar la otra pestaña, donde está el usuario noroot_user, para poder comenzar a utilizarlos con los permisos recién adquiridos.

Paso 4 - Instalación del Servidor Apache
Para instalar apache, vamos a necesitar dos comando:
sudo apt install apache2
sudo service apache2 start
Una vez instalado el servidor Apache, probemos que todo funciona, accediendo en el navegador a la url http://localhost. Deberíamos ver en pantalla la siguiente imagen:

Si todo es correcto, entonces podremos continuar y habilitaremos los módulos que vamos a necesitar, como el "Rewirte" o el "SSL"
sudo a2enmod rewrite
sudo a2enmod ssl
Y a continuación, para que se efectúen los cambios en el servidor, necesitaremos reiniciarlo usando el comando:
sudo service apache2 restart
Llegado a este punto, te recomendaría ajustar la configuración de Apache para que los permisos coincidan con su nombre de usuario. En otras palabras, cuando hagas una lista de archivos, esta configuración de nombre de usuario que ingrese en Apache será la misma que la del propietario de los archivos en su sistema de archivos Linux. De esa forma, Apache tendrá permisos para modificar los archivos y carpetas de tu sitio. Si no lo haces, es posible que elementos como Grav y WP no funcionen correctamente o no funcionen en absoluto. Así que dirígete a este archivo y haz el siguiente cambio:
sudo nano /etc/apache2/envvars
export APACHE_RUN_USER=your_user
export APACHE_RUN_GROUP=your_user
Y a continuación, una vez hayas editado el archivo envvars, para que se efectúen los cambios en el servidor, necesitaremos reiniciarlo usando el comando:
sudo service apache2 restart
Ahora podemos comprobar si ambos módulos han sido activados correctamente, ejecutando el siguiente comando:
apache2ctl -M | egrep 'ssl|rewrite'
Entonces en nuestra consola, si todo está correcto, deberíamos ver el siguiente mensaje:
#Enabled
rewrite_module (shared)
ssl_module (shared
Paso 5 - Instalación y configuración del Servidor de Base de datos MariaDB
Lo primero que necesitaremos es instalar el servidor, ejecutando el siguiente comando:
sudo apt install mariadb-server mariadb-client
Importante: No se le pedirá que cree una contraseña, pero en una instalación local está bien. Y técnicamente no es inseguro de todos modos, ya que significa que solo aquellos con privilegios de sudo pueden acceder al servidor MySQL.
Ahora necesitamos iniciar el servidor MySQL ejecutando el siguiente comando:
sudo service mysql start
Paso 6 - Instalación y configuración PHP
En el caso de PHP, además de instalar la versión que vamos a utilizar, tendremos que realizar algunas modificaciones, como la activación de varias librerías, y otras modificaciones recomendadas para trabajar con Drupal, como el tiempo de ejecución o el máximo de tamaño de subida de archivos, pero vamos por partes, primero instalaremos php y activaremos algunas librerías necesarias:
sudo apt install php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl -y
Es posible que también deba instalar módulos según los requisitos de su aplicación. Utilice el siguiente comando para buscar módulos PHP 7 disponibles en el repositorio de paquetes.
sudo apt-cache search php7*
En nuestro caso, vamos a instalar los siguientes "módulos" de php:
sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
Por últimos, vamos a realizar algunos de los cambios de configuración del PHP.ini que nos ayudarán y evitarán posibles errores una vez instalemos nuestro Drupal. Para ello, abriremos el archivo de configuración de php "php.ini" y realizaremos las modificaciones correspondientes:
sudo nano /etc/php/7.4/apache2/php.ini
- max_execution_time = 600
- post_max_size = 64M
- short_open_tag
Default Value: On - memory_limit = -1
- upload_max_filesize = 100M
Una vez actualizados los cambios en el archivo de configuración de apache, volveremos a reiniciar nuestro servidor para que se guarden dichos cambios, para ello ejecutaremos el comando:
sudo service apache2 restart
Ahora que PHP está instalado, para probar si está funcionando, cree un archivo de prueba llamado phpinfo.php en el directorio raíz predeterminado de Apache2…. (/ var / www / html /)
sudo nano /var/www/html/phpinfo.php
Luego, escriba el contenido a continuación y guarde el archivo.
<?php phpinfo( ); ?>
A continuación, abra su navegador y busque el nombre de host o la dirección IP del servidor seguido de phpinfo.php
http://localhost/phpinfo.php
Debería ver la página de prueba predeterminada de PHP, como esta:
Una vez comprobado que todo está correcto, tendremos que borrar este archivo ya que es información que implica riesgos de seguridad, para ello ejecutaremos el siguiente comando:
rm -f /var/www/html/info.php
Paso 7 - Instalación Interfaz Usuario para administrar MySql
Aunque según los requerimientos de tu aplicación, puede que no te haga falta un entorno gráfico, para la administración de tus bases de datos y tablas, porque lo realizarás usando comandos de tu consola, te recomiendo instalar esta pequeña aplicación que te servirá de ayuda:
sudo apt install adminer
Casi hemos terminado. Hay un problema para todos aquellos que cambiaron la configuración de usuario / grupo de Apache anterior. El administrador accede y escribe en su carpeta de sesiones de PHP, por lo que debe otorgarle a su usuario (el usuario que configuró en Apache) los permisos de la carpeta correspondiente a esa carpeta. Puedes realizar el cambio ejecutando el siguiente comando:
cd /var/lib/php
sudo chown -R your_user:your_user sessions
Ahora sí, lo último que nos faltará es activar Adminer, reiniciar Apache nuevamente, por supuesto, y luego verlo. Comience con estos dos comandos:
sudo a2enconf adminer.conf
sudo service apache2 restart
Para comprobar el Adminer funciona correctamente escribe en el navegador la url http://localhost/adminer/
¡Pero necesitamos un nombre de usuario para iniciar sesión ahora! Así que sigamos adelante y hagamos eso. Recuerde que todo esto es solo para desarrolladores locales, por lo que las preocupaciones de seguridad habituales relacionadas con la creación de un superusuario no se aplican realmente. Nunca hagas esto en un sitio en vivo. Siempre.
Así que inicie MySQL así:
sudo mysql
Luego ingrese los siguientes comandos, Primero creamos el usuario que funcionará como root, luego le daremos los permisos para que pueda hacer cualquier tarea con las bases de datos, a continuación reseteamos la tabla de permisos y por último, saldremos de servidor de base de datos:
CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON * . * TO 'user_name'@'localhost';
flush privileges;
exit
Ahora que haz creado un superusuario, ya podrás iniciar sesión en Adminer y comenzar a trabajar con tus bases de datos y tablas.
* Usuario con permisos específicos
Aunque tenemos un Super usuario con el cuál podremos realizar, todas las operaciones en nuestro servidor de base de datos, es muy recomendable limitar los accesos a la base de datos específica en cada proyecto. Por esta razón, a continuación vamos a crear un usuario y una base de datos específica para nuestro proyecto.
Primero nos vamos a loguear como Super usuario y una vez dentro, ejecutaremos cada una de las líneas siguientes, en las que primero crearemos la base de datos, luego el usuario con sus datos de acceso, a continuación le daremos todos los permisos, específicos para la tabla en concreto y por último el reseteo de la tabla de permisos:
sudo mysql;
CREATE DATABASE drupaldb;
CREATE USER drupaluser@localhost IDENTIFIED BY 'drupaluser@';
GRANT ALL PRIVILEGES ON drupaldb.* to drupaluser@localhost identified by 'drupaluser@';
FLUSH PRIVILEGES;
EXIT
Si queremos ver el listado de las bases de datos que tenemos creadas al momento, entraremos a MySql y luego ejecutamos el siguiente comando:
SHOW DATABASES;
Para borrar una base de datos (Cuidado porque se perderá toda la información), ejecutaremos:
DROP DATABASE mi_bd_para_borrar;
Para ver el listado de usuarios creados, ejecutaremos el siguiente comando:
SELECT User FROM mysql.user;
Para borrar un usuario específico:
DROP USER 'usuario'@'localhost';
Paso 8 - Configuración del Virtual Host y el SSL
Para poder trabajar con certificados SSL, es necesario prestar atención en varios detalles previos, por eso, he preferido hacerlo en otro artículo con su video propio, que podrás leer y ver haciendo clic aqui Ver siguiente artículo