DPIOT / 1

Instalación WSL Debian

Un servidor de prácticas dentro de Windows: Debian, Apache, PHP 8.4, MariaDB y phpMyAdmin.

Curso 2026 / 2027Proyecto completado · Debian instaladoRubén Delegido Muñoz

01 / Objetivo y resultado

Proyecto realizado. He instalado Debian en mi equipo y he completado el proyecto de instalación y preparación del entorno de prácticas. En esta memoria recojo el procedimiento y añado capturas de mi entorno de trabajo.

Consultar el enunciado del profesor ↗

Preparar Debian en WSL 2 como servidor de prácticas: Apache2 atiende las páginas, PHP 8.4 ejecuta el código y MariaDB guarda los datos; phpMyAdmin permite administrarlos desde el navegador.

02 / Instalar y comprobar WSL

En PowerShell como administrador, instala Debian y reinicia si Windows lo solicita:

wsl --install -d Debian
wsl --list --verbose

Crea el usuario Linux del aula y su contraseña al abrir Debian. La columna VERSION debe indicar 2. Para convertir una instalación existente:

wsl --set-version Debian 2
Instalación limpia opcional

Solo si necesitas empezar desde cero y has guardado tus archivos: wsl --unregister Debian elimina por completo la distribución. No es necesario para una instalación normal.

03 / Apache y PHP 8.4

Los siguientes pasos se realizan en Debian. Primero identifica la versión; no mezcles repositorios de Debian 12 (bookworm) y Debian 13 (trixie).

cat /etc/os-release
sudo apt update
sudo apt upgrade
sudo apt install -y apache2 ca-certificates curl gnupg lsb-release

Comprueba si PHP 8.4 está disponible en tus repositorios:

apt-cache policy php8.4

Si hay candidato, instala los paquetes siguientes. Si no lo hay, configura el repositorio de PHP de Sury para el nombre de tu distribución, siguiendo su documentación enlazada al final; vuelve a ejecutar sudo apt update.

Configurar Sury cuando PHP 8.4 no está disponible

Este bloque descarga el paquete de claves e incorpora un repositorio externo. Úsalo solo si necesitas esa versión y tras comprobar el nombre de tu distribución.

sudo apt install -y lsb-release ca-certificates curl
curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb
printf 'deb [signed-by=/usr/share/keyrings/debsuryorg-archive-keyring.gpg] https://packages.sury.org/php/ %s main\n' "$(lsb_release -sc)" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
sudo apt install -y php8.4 libapache2-mod-php8.4 php8.4-cli php8.4-mysql php8.4-mbstring php8.4-curl php8.4-xml php8.4-zip php8.4-bcmath php8.4-gd
sudo a2enmod php8.4
sudo service apache2 restart
php -v

Para editar tus páginas en el directorio del servidor local:

sudo chown -R "$USER":"$USER" /var/www/html
mkdir -p /var/www/html/practicas
cd /var/www/html/practicas
printf '<?php echo "PHP activo: ".PHP_VERSION; ?>' > index.php

Abre http://localhost/practicas/. Debe aparecer la versión de PHP, en lugar del código fuente.

04 / MariaDB y phpMyAdmin

Instala el servidor de base de datos y su interfaz:

sudo apt install -y mariadb-server mariadb-client phpmyadmin
sudo service mariadb start
sudo service apache2 restart
mariadb --version

Durante la configuración de phpMyAdmin selecciona Apache2 con la barra espaciadora y acepta la configuración de su base de datos si el instalador la ofrece. Si no quedó publicada, comprueba la configuración instalada antes de habilitarla:

ls /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin
sudo service apache2 reload

Entra a MariaDB con sudo mariadb y crea una base de datos y un usuario para las prácticas. Sustituye la contraseña de ejemplo antes de ejecutar:

CREATE DATABASE practicas CHARACTER SET utf8mb4;
CREATE USER 'practicas'@'localhost' IDENTIFIED BY 'CAMBIA_ESTA_CLAVE';
GRANT ALL PRIVILEGES ON practicas.* TO 'practicas'@'localhost';
EXIT;

Abre http://localhost/phpmyadmin/ y comprueba el acceso a la base de datos. En esta guía se conserva el acceso administrativo por sudo mariadb y se usa un usuario propio para el trabajo del aula.

05 / Herramientas y diagnóstico

sudo apt install -y git curl wget nano vim htop tree unzip rsync openssh-server
sudo service ssh start
ProblemaRevisión
Apache no respondeEjecuta sudo service apache2 status y comprueba que otro servicio de Windows no ocupe el puerto 80.
PHP se descarga o se ve como textoComprueba libapache2-mod-php8.4, el módulo habilitado y reinicia Apache.
phpMyAdmin no apareceRevisa su configuración en Apache y los módulos PHP mysql/mbstring.
Fallan dependenciasConsulta VERSION_CODENAME y apt-cache policy; corrige el repositorio que no corresponda a tu Debian.

06 / Evidencias y comprobaciones

He finalizado el proyecto de Debian y dejo documentados los apartados trabajados: instalación en Windows mediante WSL, preparación del servidor web, configuración del entorno PHP y gestión de bases de datos.

Resumen del trabajo realizado

  • Instalación de Debian y preparación del acceso desde Windows.
  • Desarrollo de los apartados dedicados a Apache, PHP 8.4, MariaDB y phpMyAdmin.
  • Documentación de los comandos de instalación, configuración y diagnóstico.
  • Incorporación de capturas propias del entorno de trabajo.

Capturas del entorno

Estas imágenes acompañan la memoria y muestran el entorno de Windows y una sesión de terminal Linux abierta. Pulsa cada imagen para verla a tamaño completo.

Escritorio de Windows con el panel de búsquedas recientes abierto
1. Entorno de trabajo en Windows. Escritorio desde el que realizo las prácticas y accedo a las herramientas del proyecto.
Terminal Linux con el usuario me en el equipo KD-74510617R y el prompt preparado para introducir comandos
2. Sesión de terminal Linux. La consola muestra el usuario me en el equipo KD-74510617R, situado en su directorio personal y preparado para introducir comandos.

Conclusión personal

Con este proyecto he completado la instalación de Debian y he trabajado la preparación de un entorno Linux para las prácticas. La memoria reúne los pasos del servidor web y de la base de datos, además de comandos de diagnóstico que puedo consultar al continuar con los siguientes proyectos.