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.
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/htmla 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 --verboseAtenció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 --shutdownwsl --unregister DebianPaso 1: instalar WSL y Debian
En PowerShell como Administrador.
Habilitar WSL en Windows
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestartAtenció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 DebianDurante 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 -ysudo apt install apache2 -ysudo chown -R $USER:$USER /var/www/htmlAñadir el repositorio de PHP e instalar PHP 8.4
sudo apt install -y gnupg apt-transport-https ca-certificates curlcurl -fsSL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /usr/share/keyrings/sury-archive-keyring.gpgecho "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.listsudo apt update && sudo apt upgrade -ysudo apt install -y php8.4php -vRepositorios 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.listsudo apt updatesudo apt install -y libzip4 libavif15sudo apt install -y php8.4-{cli,fpm,mysql,mbstring,curl,xml,zip,bcmath,gd}Instalar MariaDB
sudo apt install mariadb-server mariadb-client -ymysql --versionInstalar phpMyAdmin
sudo apt install phpmyadmin -ysudo a2enconf phpmyadminsudo systemctl reload apache2Herramientas de trabajo y SSH
sudo apt install -y curl wget git vim nano htop tree unzip rsync openssh-serversudo systemctl enable sshsudo systemctl start sshContraseña de root en MariaDB
sudo mariadbDentro de la consola MariaDB [(none)]>:
ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('me');FLUSH PRIVILEGES;quitPermisos finales de la carpeta web
sudo chown -R $USER:$USER /var/www/htmlEvidencias
Capturas tomadas en el equipo donde se hizo la instalación. Pulsa una captura para verla completa.


me que pide el enunciado.
localhost, entre ellas las páginas del portal y /phpmyadmin.
http://localhost.Estado de la instalación
Comprobado directamente en Debian el 5 de noviembre de 2026.
| Componente | Resultado | Estado |
|---|---|---|
| Distribución en WSL | Debian GNU/Linux 13 (trixie), WSL versión 2 | Correcto |
| Usuario | me | Correcto |
| Apache | 2.4.68, servicio activo, responde 200 en / | Correcto |
| PHP 8.4 | 8.4.26, con módulo para Apache | Correcto |
| Extensiones de PHP 8.4 | cli, mysql, mbstring, curl, xml, bcmath | Correcto |
| Extensiones de PHP 8.4 | fpm, zip, gd | Pendiente |
| MariaDB | 11.8.6, servicio activo | Correcto |
| phpMyAdmin | 5.2.2, configuración activa, responde 200 en /phpmyadmin/ | Correcto |
| Herramientas | curl, wget, git, vim, nano, htop, tree, unzip, rsync | Correcto |
| SSH | Servicio activo y habilitado | Correcto |
/var/www/html | Propietario me | Correcto |
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.