Post actualizado el día octubre 24, 2026 by DeiviSanzPlay
XAMPP es probablemente el entorno de desarrollo local más extendido entre quienes aprenden PHP, MySQL o WordPress. Su instalación es sencilla, pero cuando algo falla —y siempre falla algo— el mensaje que aparece en pantalla rara vez explica qué ocurrió. Esta guía repasa los fallos más frecuentes y cómo resolverlos sin reinstalar todo desde cero.
Apache no arranca: el clásico puerto 80 ocupado
El síntoma habitual es un cuadro de diálogo que indica que Apache se detuvo inesperadamente. En la mayoría de los casos, el puerto 80 o el 443 ya están siendo usados por otro proceso. Skype, IIS, algunos servicios de Adobe o incluso el propio servicio «World Wide Web Publishing» pueden estar escuchando ahí.
Para identificarlo en Windows, abre una consola como administrador y ejecuta netstat -ano | findstr :80. El número final de cada línea es el PID del proceso culpable; búscalo en el Administrador de tareas y deténlo. Si prefieres no tocar otros programas, edita httpd.conf y cambia Listen 80 por Listen 8080, y ServerName localhost:80 por localhost:8080. Recuerda ajustar también httpd-ssl.conf si usas HTTPS.
MySQL se cierra nada más iniciar
Cuando MySQL aparece en verde un segundo y vuelve a rojo, casi siempre hay una instancia previa de MySQL o MariaDB instalada como servicio de Windows, o los archivos de datos quedaron corruptos tras un apagón. Revisa el archivo mysql_error.log dentro de xampp/mysql/data: la línea final suele contener la pista real.
Si el error menciona InnoDB: Unable to lock ./ibdata1, detén el servicio MySQL del sistema con net stop mysql y vuelve a intentarlo. Si el problema es corrupción, renombra la carpeta data y copia la versión limpia de mysql/backup; perderás las bases de datos creadas, así que exporta antes siempre que sea posible.
Error «Access denied for user ‘root’@’localhost’»
Este mensaje en phpMyAdmin suele deberse a una contraseña que cambió y no se reflejó en la configuración. Abre xampp/phpMyAdmin/config.inc.php y revisa las líneas $cfg[‘Servers’][$i][‘password’] y [‘auth_type’]. Si olvidaste la clave de root, detén MySQL, inicia la consola con mysqld –skip-grant-tables, ejecuta ALTER USER ‘root’@’localhost’ IDENTIFIED BY »; y reinicia el servicio.
Página en blanco o error 500 al cargar un proyecto
Un PHP que no muestra nada normalmente esconde un error de sintaxis con display_errors desactivado. Edita php.ini, pon display_errors=On y error_reporting=E_ALL, guarda y reinicia Apache. Merece la pena tener activado también log_errors para consultar apache/logs/error.log, donde quedan registrados los fallos aunque la web no los muestre.
phpMyAdmin devuelve «The mbstring extension is missing»
Al actualizar XAMPP o migrar un php.ini antiguo, algunas extensiones quedan comentadas. Busca en el archivo las líneas extension=mbstring, extension=mysqli y extension=pdo_mysql y elimina el punto y coma inicial. Guarda y reinicia Apache para que los cambios surtan efecto.
Mensaje «XAMPP is not installed correctly» en Windows 10 u 11
Aparece cuando el programa se instaló en C:Program Files sin permisos adecuados o con una ruta que contiene caracteres especiales. Desinstala y vuelve a colocar XAMPP en C:xampp, ejecutando el instalador con clic derecho y «Ejecutar como administrador». Evita tildes y espacios en la ruta.
El panel de control no responde
Si la ventana de XAMPP queda congelada al iniciar, cierra todos los procesos xampp-control.exe desde el Administrador de tareas y relánzalo como administrador. En ocasiones el archivo xampp-control.ini se corrompe; bórralo y el programa regenerará uno nuevo con valores por defecto.
Antes de cualquier cambio, respalda las carpetas htdocs y mysql/data: son los dos lugares donde vive tu trabajo. Con esas copias y los pasos anteriores, la mayoría de incidencias de XAMPP se resuelven en pocos minutos sin necesidad de formatear el entorno.