CC Portal académico
Inicio DPIOT Instalación WSL Debian

Instalación de WSL y Debian

Memoria de la preparación de un entorno de trabajo en Debian sobre WSL, con Apache2, PHP, MariaDB y phpMyAdmin.

Memoria Módulo DPIOT · Carlos Clemente Candela · Curso 2026-2027

Enunciado

La tarea consiste en dejar preparado en WSL un entorno Debian con Apache2, PHP 8.4, MariaDB y phpMyAdmin, que sirva tanto para las páginas web como para los proyectos con ESP32.

Qué se pide

  • Habilitar WSL en Windows e instalar Debian.
  • Instalar el servidor web y PHP con sus extensiones.
  • Instalar la base de datos y phpMyAdmin.
  • Añadir herramientas de trabajo y el servicio SSH.
  • Dejar /var/www/html a nombre del usuario.

Datos de partida

  • Sistema anfitrión: Windows 11.
  • Distribución: Debian.
  • Usuario de Debian: me.
  • Consola de Windows: PowerShell como Administrador.

Guía original: Instalación WSL Debian (unicarlos.es).

Paso 0: desinstalar (opcional)

Solo hace falta para quitar Debian y empezar de cero. Se ejecuta en PowerShell como Administrador.

Ver las distribuciones instaladas

wsl --list --verbose

Atención: el nombre debe coincidir con el de la lista. Al quitar la distribución se borra todo lo instalado dentro: Apache, PHP, MariaDB y demás.

Apagar WSL y quitar Debian

wsl --shutdown
wsl --unregister Debian

Paso 1: instalar WSL y Debian

En PowerShell como Administrador.

Habilitar WSL en Windows

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Atención: los dos comandos se lanzan por separado, esperando a que termine cada uno. Después hay que reiniciar el equipo.

Instalar Debian

wsl --install -d Debian

Durante la instalación se crea el usuario me con la contraseña me. La contraseña no se ve mientras se escribe. Al terminar se cierra PowerShell.

Abrir Debian

Se pulsa la tecla Windows, se escribe «Debian» y se abre la aplicación. Los comandos del siguiente paso se ejecutan en esa ventana.

Paso 2: configurar Debian

Actualizar el sistema e instalar Apache

sudo apt update && sudo apt upgrade -y
sudo apt install apache2 -y
sudo chown -R $USER:$USER /var/www/html

Añadir el repositorio de PHP e instalar PHP 8.4

sudo apt install -y gnupg apt-transport-https ca-certificates curl
curl -fsSL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /usr/share/keyrings/sury-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/sury-archive-keyring.gpg] https://packages.sury.org/php/ bookworm main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update && sudo apt upgrade -y
sudo apt install -y php8.4
php -v

Repositorios de Debian y extensiones de PHP

Las extensiones zip y gd necesitan librerías del repositorio oficial de Debian, como libzip4 y libavif15.

printf '%s\n' 'deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware' 'deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware' 'deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware' | sudo tee /etc/apt/sources.list
sudo apt update
sudo apt install -y libzip4 libavif15
sudo apt install -y php8.4-{cli,fpm,mysql,mbstring,curl,xml,zip,bcmath,gd}

Instalar MariaDB

sudo apt install mariadb-server mariadb-client -y
mysql --version

Instalar phpMyAdmin

sudo apt install phpmyadmin -y
sudo a2enconf phpmyadmin
sudo systemctl reload apache2

Herramientas de trabajo y SSH

sudo apt install -y curl wget git vim nano htop tree unzip rsync openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh

Contraseña de root en MariaDB

sudo mariadb

Dentro de la consola MariaDB [(none)]>:

ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('me');
FLUSH PRIVILEGES;
quit

Permisos finales de la carpeta web

sudo chown -R $USER:$USER /var/www/html

Evidencias

Capturas tomadas en el equipo donde se hizo la instalación. Pulsa una captura para verla completa.

Búsquedas recientes de Windows con la aplicación Debian en primer lugar.
Figura 1. Debian aparece como aplicación instalada en Windows.
Terminal de Debian con el indicador del usuario me en el equipo LAPTOP-L154CLAC.
Figura 2. Terminal de Debian abierta con el usuario me que pide el enunciado.
Buscador del navegador con sugerencias de localhost: el portal 2ME, MER, ESP-NOW y phpMyAdmin.
Figura 3. El historial del navegador recoge visitas a localhost, entre ellas las páginas del portal y /phpmyadmin.
Portal 2ME abierto en el navegador en la dirección localhost, con los módulos DPIOT, MER y PI2.
Figura 4. La web del curso servida por Apache desde Debian en http://localhost.

Estado de la instalación

Comprobado directamente en Debian el 5 de noviembre de 2026.

ComponenteResultadoEstado
Distribución en WSLDebian GNU/Linux 13 (trixie), WSL versión 2Correcto
UsuariomeCorrecto
Apache2.4.68, servicio activo, responde 200 en /Correcto
PHP 8.48.4.26, con módulo para ApacheCorrecto
Extensiones de PHP 8.4cli, mysql, mbstring, curl, xml, bcmathCorrecto
Extensiones de PHP 8.4fpm, zip, gdPendiente
MariaDB11.8.6, servicio activoCorrecto
phpMyAdmin5.2.2, configuración activa, responde 200 en /phpmyadmin/Correcto
Herramientascurl, wget, git, vim, nano, htop, tree, unzip, rsyncCorrecto
SSHServicio activo y habilitadoCorrecto
/var/www/htmlPropietario meCorrecto

Incidencia

Al copiar la web desde el Explorador de Windows a \\wsl.localhost\Debian\var\www\html apareció el aviso «Acceso a la carpeta de destino denegado», porque la carpeta pertenecía a root. Con /var/www/html a nombre de me, como indica la guía, se puede copiar sin problema.

Conclusión

El entorno funciona: Debian corre sobre WSL 2, Apache sirve la web del curso en localhost y MariaDB, phpMyAdmin y SSH están activos. Quedan pendientes las extensiones zip, gd y fpm de PHP 8.4.