LEMP en WSL2 y Windows 11 | Guía completa

En este curso partiremos del supuesto de que ya tienes descargado y activado WSL2 con una distribución de Ubuntu, tal y como explicamos en el video Cómo Instalar LAMP usando WSL2 en Windows 10 (1era Parte), por lo que nos centraremos en el resto de pasos necesarios para la configuración de un servidor LINUX, NGINX, MARIADB Y PHP (LEMP), que te permitirá ejecutar tus desarrollos locales de Drupal o de lo que necesites.

www.cursodrupal.com | Formacion Drupal y Symfony en Español

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Paso 1 - Instalación de Nginx

Comenzaremos por abrir nuestra consola mejorada de Windows y seleccionar la distribución con la que vamos a trabajar, que en mi caso será la de Ubuntu que podremos descargar desde la tienda de Windows.

www.cursodrupal.com | Formacion Drupal y Symfony en Español

Ahora que tenemos la distribución de Ubuntu funcionando, podemos comenzar con las instalaciones.

Pero como en toda distribución de Linux, antes de cualquier instalación, nos aseguraremos de que se hayan descargado las últimas actualizaciones de todos los paquetes, y como se trata de descarga e instalación de archivos, utilizaremos sudo delante para asegurarno de que no habrá ningún fallo.

 

sudo apt update && sudo apt upgrade

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


En cuanto terminen las actualizaciones, podremos comenzar con la instalación de Nginx. Así que escribiremos en la consola el siguiente comando:

 

sudo apt install nginx

 

Daremos clic en la pregunta que nos presenta durante el proceso hasta que termine.
 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Si abrimos el navegador y escribimos localhost, comprobaremos que tenemos funcionando nuestro servidor correctamente, ya que nos muestra la página de bienvenida.
 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Paso 2 - Instalación y configuración de MariaDB

En este momento continuaremos con la descarga y configuración de Mariadb, que sustituyó Mysql para gestionar nuestras bases de datos.

Con este propósito escribiremos el siguiente comando en la consola y comenzará la descarga:

 

sudo apt install mariadb-server

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

Al finalizar la instalación, lo recomendable es ejecutar un script de seguridad preinstalado en MySQL. Este script eliminará algunas configuraciones predeterminadas inseguras y bloqueará el acceso a su sistema de base de datos. Inicie el script interactivo ejecutando el siguiente comando:

sudo mysql_secure_installation

 

A continuación daremos clic en ENTER a todas las preguntas que nos vayan apareciendo en la pantalla.
 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


En una de las preguntas nos ofrece la oportunidad de cambiar los datos de acceso para nuestro usuario ROOT, podremos decidir si añadir una nueva contraseña o dar enter para que conserve la que habíamos definido previamente.
 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Una vez terminado el proceso de configuración, aprovecharemos para añadir el administrador específico de mariadb que nos permite todas las operaciones relacionadas con bases de datos, tablas y usuarios de mariadb, para ello escribiremos el siguiente comando en la consola:

sudo mariadb

Dentro de mariadb añadiremos los datos de acceso para nuestro administrador, tal y como lo haríamos con mysql:
 

GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Para terminar con la configuración, ejecutaremos la limpieza de la caché de mariadb y saldremos del servidor.
 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


El último paso será comprobar que el servidor de base de datos funciona correctamente, para lo que escribiremos lo siguiente:

sudo systemctl status mariadb

Si todo es correcto, veremos en la consola la información con los detalles que nos lo confirma.
 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

Paso 3 - Instalación de PHP 8.4

Con el fin de complementar nuestra instalación, sobre todo en el caso de que pensemos trabajar con Drupal 11, necesitamos descargar y activar PHP y las librerías complementarias requeridas por Drupal. 

 

Lista de paquetes PHP existentes

Antes de comenzar con la descarga de PHP volveremos a ejecutar los comandos de actualización de paquetes de Ubuntu.

Ubuntu no suele incluir las últimas versiones de PHP en sus repositorios predeterminados. Por lo que vamos a utilizar el repositorio de Ondřej Surý, que proporciona los paquetes de PHP más recientes.

Agregar ondrej/php PPA/DPA

Antes, tendremos que descargar sus dependencias, por lo que añadiremos el siguiente comando en la consola:
 

sudo apt install software-properties-common -y

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

Ahora podemos añadir el repositorio que nos permitirá la instalación de PHP 8.4 en nuestro servidor, por lo que añadiremos el siguiente comando, para hacerlo:

sudo add-apt-repository ppa:ondrej/php


Al añadir el repositorio, nos lanzará una alerta con el mensaje que nos indica, que al hacer clic en ACEPTAR, se nos descargará la versión de php correspondiente con el servidor en el que estamos trabajando, que puede ser Apache2 o Nginx, así que daremos clic en ENTER para completar el proceso.

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

En cuanto demos clic en ENTER, se ejecutará el resto del proceso necesario y quedará añadido el repositorio correspondiente con Nginx que es nuestro caso.
 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Ya que hemos añadido un nuevo repositorio, es recomendable ejecutar otra vez el comando de actualización de paquetes antes de continuar.

sudo apt update

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Una vez terminada la actualización de los paquetes, podemos proceder con la instalación de Php 8.4 y las extensiones más habituales. Con este propósito escribiremos el siguiente comando en la consola:

 

sudo apt install php8.4 php8.4-fpm php8.4-cli php8.4-mysql php8.4-curl php8.4-xml php8.4-mbstring php8.4-zip php8.4-bcmath php8.4-soap php8.4-intl php8.4-readline -y

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

En cuanto termine la descarga, podremos comprobar que se ha instalado correctamente con el comando siguiente:

php -v

  El resultado que deberíamos ver en pantalla será parecido al siguiente:

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

Configurar PHP-FPM para Nginx

Como estamos trabajando con Nginx, nos aseguraremos de que actualmente está ejecutandose PHP-FPM para Nginx, escribiendo lo siguiente:

sudo systemctl status php8.4-fpm

Esto deberá imprimir en pantalla el resumen que nos permite comprobar que el resultado coincide con lo que esperamos.

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Si por algún motivo no está ejecutándose, escribiremos el siguiente comando que pondrá php-fpm en marcha:
 

sudo systemctl start php8.4-fpm

Comprobación final
Con todo lo anterior funcionando, crearemos una carpeta en la que alojaremos nuestro sitio web dentro de Nginx.

sudo mkdir /var/www/drupal.localhost

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


A continuación, asigne la propiedad del directorio con la variable de entorno $USER, que hará referencia a su usuario actual del sistema:

sudo chown -R $USER:$USER /var/www/drupal.localhost

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Luego, abriremos un nuevo archivo de configuración en el directorio sites-available de Nginx con su editor de línea de comandos preferido.

sudo nano /etc/nginx/sites-available/drupal.localhost

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Y en su interior añadiremos el siguiente código de configuración para Nginx:

 

server {

    listen 80;

    server_name drupal.localhost;

    root /var/www/drupal.localhost;


    index index.php index.html;


    location / {

        try_files $uri $uri/ =404;

    }


    location ~ \.php$ {

        include snippets/fastcgi-php.conf;

        fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        include fastcgi_params;

    }

}

 

Comprobaremos que la configuración de Nginx funciona correctamente escribiendo el comando:

 

sudo nginx -t

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Si nos devuelve un mensaje OK, reiniciamos el servidor para que se guarden los cambios:

sudo systemctl reload nginx

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Ahora comprobaremos que se ejecuta correctamente php dentro de nuestro sitio, para esto crearemos un archivo info.php con el siguiente código:
 

echo "<?php phpinfo();" | sudo tee /var/www/drupal.localhost/info.php

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Con el archivo creado, visitaremos nuestro navegador escribiendo el dominio que hemos definido en el archivo de configuración para Nginx:

http://drupal.localhost/info.php

Para nuestra sorpresa, a pesar de haber reiniciado el servidor para que se guardaran los cambios, nos presenta una página no encontrada, por lo que tendremos que realizar algunos ajustes.
 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Nos moveremos a la carpeta “/etc/nginx/sites-available/”, donde guardamos nuestro archivo de configuración para el sitio y ejecutaremos el ls para comprobar que otros archivos existen.
 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


En su interior, veremos que está el archivo default, que podemos utilizar como guía cuando comenzamos a trabajar con nginx, pero que en nuestro caso no nos hace falta, ya que tenemos nuestro archivo personalizado.

Así que lo eliminaremos y volveremos a reiniciar el servidor nginx:
 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Una vez eliminado el archivo, al intentar reiniciar el servidor, nos devuelve un error, ya que necesita que exista un archivo con el nombre default para funcionar.

Si ejecutamos nuevamente el comando ls, confirmaremos que sólo tenemos nuestro archivo personalizado, por lo que tendremos que renombrarlo para que todo se ejecute correctamente.
 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


En cuanto renombramos nuestro archivo de configuración con el nombre default, si reiniciamos el servidor, podremos volver al navegador y tendremos la respuesta correcta.
 

www.cursodrupal.com | Formacion Drupal y Symfony en Español


Al refrescar el navegador, se mostrarán correctamente los valores correspondientes a php 8.4, por lo que ya podremos trabajar con Drupal o Wordpress en nuestro entorno local de Windows con WSL2.
 

www.cursodrupal.com | Formacion Drupal y Symfony en Español