Preparar el servidor del aula con Debian
Entorno de servidor para el aula: Windows aloja Debian en WSL, y Debian ejecuta Apache, PHP 8.4 y la base de datos.
01 / Objetivo
La preparación separa cuatro funciones: WSL 2 proporciona Debian, Apache2 publica las páginas, PHP 8.4 interpreta los programas y MariaDB almacena los datos. phpMyAdmin ofrece su administración desde una interfaz web.
02 / Instalar y comprobar WSL
Abre PowerShell con permisos de administración para instalar Debian; completa el reinicio si lo pide Windows:
wsl --install -d Debian
wsl --list --verboseEn el primer inicio de Debian define tu usuario Linux. Revisa después la columna VERSION: debe mostrar 2. Si la distribución ya existía, puedes convertirla con:
wsl --set-version Debian 2Instalación limpia opcional
La siguiente operación solo corresponde a un reinicio completo del entorno, después de respaldar sus archivos: wsl --unregister Debian borra íntegramente la distribución; la instalación habitual no necesita ejecutar esa orden.
03 / Apache y PHP 8.4
A partir de aquí se trabaja dentro de Debian. Identifica antes la edición instalada para no combinar paquetes de bookworm (12) con los de trixie (13).
cat /etc/os-release
sudo apt update
sudo apt upgrade
sudo apt install -y apache2 ca-certificates curl gnupg lsb-releaseAntes de instalar, revisa qué candidato ofrecen los repositorios para PHP 8.4:
apt-cache policy php8.4Cuando exista candidato, continúa con los paquetes indicados. En caso contrario, sigue la referencia de Sury para la edición de Debian detectada y repite sudo apt update.
Configurar Sury cuando PHP 8.4 no está disponible
Este procedimiento incorpora claves y una fuente externa de paquetes; corresponde únicamente al caso en que los repositorios actuales no ofrezcan la versión requerida.
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 updatesudo 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 -vEl directorio publicado por Apache puede prepararse para editar allí los ejercicios:
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.phpAbre http://localhost/practicas/. La respuesta correcta muestra información de la versión, no el texto del programa.
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 --versionAl configurar phpMyAdmin, marca Apache2 con la barra espaciadora y completa la base de datos si el asistente la propone. Si no se publica, verifica primero qué configuración quedó instalada:
ls /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin
sudo service apache2 reloadEntra a MariaDB con sudo mariadb para preparar una base de datos y una cuenta específica del ejercicio. Cambia la clave de muestra antes de lanzar:
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 verifica que la cuenta accede a la base de datos. La administración de esta guía utiliza 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| Problema | Revisión |
|---|---|
| Apache no responde | Revisa sudo service apache2 status y comprueba si Windows tiene otro proceso escuchando en el puerto 80. |
| PHP se descarga o se ve como texto | Comprueba que libapache2-mod-php8.4 y su módulo están activos; reinicia Apache después de corregirlos. |
| phpMyAdmin no aparece | Verifica la publicación en Apache y la carga de las extensiones PHP mysql y mbstring. |
| Fallan dependencias | Contrasta VERSION_CODENAME con apt-cache policy para localizar una fuente de paquetes que no corresponda a tu edición. |
06 / Evidencias y comprobaciones
Documenta los cinco controles con capturas obtenidas en tu instalación y anota las órdenes ejecutadas. La guía describe el procedimiento; no acredita que el equipo del aula ya lo haya completado.