Desarrollo WordPress para Windows con WSL (parte 2): Instalar la pila LAMP

Inicio / Desarrollo web / Desarrollo WordPress para Windows con WSL (parte 2): Instalar la pila LAMP

Si has llegado hasta aquí es que ya has completado la parte 1 sobre la guía de desarrollo WordPress para Windows con WSL. Si aún lo lo has hecho, ya estás tardando.

Una vez ya en marcha todo el tinglado de WSL, entonces es el momento de instalar tu entorno de desarrollo. En mi caso, como todo mi trabajo se enfoca en el desarrollo de productos basados en WordPress, necesitaré una pila LAMP (Linux + Apache + MySQL/MariaDB + PHP).

Aunque Ubuntu 20 ya trae incluidas muchas herramientas, el servidor web no es una de ellas, por lo que vamos a tener que instalarlo nosotros. Manos a la obra, pues.

Para empezar, sólo debemos abrir el programa Ubuntu que se ha instalado en nuestro ordenador con Windows 10:

Paso 1: Actualizar los paquetes de software

Microsoft no se responsabiliza del mantenimiento de la distribución de Ubuntu que hemos instalado previamente, por lo que antes de hacer nada más, debemos actualizar los repositorios que vamos a usar para instalar cualquier software.

En la consola, lanza los siguientes comandos, primero uno y luego el otro. Para pegarlos, no funciona Ctrl+V, así que usa el botón derecho del ratón.

sudo apt update
sudo apt upgrade -y
sudo apt update
sudo apt upgrade -y

Paso 2: Instalar el servidor Apache

Ahora lanza el siguiente comando para instalar el servidor Apache:

sudo apt install -y apache2 apache2-utils

Después de la instalación, el servidor no se iniciará automáticamente como sería lo lógico en Ubuntu. Esto es debido a que WSL no inicializa systemd, el sistema de control interno para el inicio, apagado, monitorización de servicios y mucho más. Echa un vistazo a este post de Jonathan Bowman para más información.

Pero eso no debe ser impedimento para que sigamos usando WSL. Sólo tenemos que iniciar el servicio por nosotros mismos, y comprobar que efectivamente está funcionando:

sudo service apache2 start
sudo service apache2 status

Ahora podemos ver nuestro servidor funcionando en localhost:

Paso 3: Instalar el servidor de bases de datos MariaDB

Sigamos. Para instalar MariaDB, lanzamos el siguiente comando:

sudo apt install -y mariadb-server mariadb-client

Igual que antes, debemos arrancar el servicio de forma manual y comprobar que está funcionando:

sudo service mysql start
sudo service mysql status

Un paso importante que hay que realizar ahora es securizar la instalación, esto es, configurar la contraseña y eliminar el login del usuario root, así como eliminar la base de datos de test.

A nivel particular, como usaré este entorno para desarrollo local, prefiero permitir el acceso del usuario root a la base de datos con la contraseña root.

sudo mysql_secure_installation

Aquí puedes ver la configuración completa que he aplicado:

Importante: tras hacer todo esto, no podremos conectarnos con el usuario root tan ricamente, debido a cierta restricción de MariaDB. Para poder hacerlo, debemos conectarnos al servidor de MySQL:

sudo mysql -u root -p

Y escribir la contraseña. Una vez dentro, hay que lanzar el siguiente comando, donde password será la contraseña que utilizamos en el paso anterior

GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;

Paso 4: Instalar PHP

Para finalizar, vamos a instalar PHP en su versión 8.1 con el siguiente comando:

sudo apt install -y php8.1  php8.1-xdebug

Si recibes el error E: Unable to locate package php8.1 es necesario que añadas los repositorios de paquetes pertinentes, y volver a lanzar el comando anterior:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

Una vez terminado el proceso, hay que habilitar el módulo de Apache para PHP 8.1 y reiniciar el servidor:

sudo a2enmod php8.1
sudo service apache2 restart

Puedes ejecutar el comando php --version para ver que todo está correcto, y ya estaría.

Por último, siempre suelo instalar unos cuantos módulos adicionales de PHP que son muy comunes en mis desarrollos de plugins para WordPress:

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

En el siguiente capítulo veremos cómo migrar un sitio WordPress de WAMP/XAMPP a Ubuntu en WSL para que todo funcione como debe sin conflictos entre ellos.