Post actualizado el día octubre 24, 2026 by DeiviSanzPlay
Cómo resolver los fallos más habituales de XAMPP
XAMPP se ha convertido en el entorno de desarrollo local preferido por quienes trabajan con PHP y MySQL. Sin embargo, no está exento de contratiempos: puertos ocupados, servicios que no arrancan, errores de acceso a phpMyAdmin o permisos denegados son incidencias que aparecen con frecuencia. Esta guía reúne las causas más comunes y el modo de subsanarlas sin reinstalar todo el paquete desde cero.
Apache no se inicia: el conflicto de puertos
El mensaje «Apache shutdown unexpectedly» suele indicar que el puerto 80 o el 443 están siendo utilizados por otro programa. Skype, IIS o algunos servicios de VMware son sospechosos habituales. La comprobación rápida se realiza desde la consola con netstat -ano | findstr :80; el número final corresponde al PID del proceso que bloquea el puerto.
Si no necesitas ese otro servicio, basta con detenerlo. Si prefieres mantenerlo activo, edita el archivo httpd.conf (ubicado en xamppapacheconf) y sustituye Listen 80 por Listen 8080, además de ServerName localhost:8080. Recuerda que después deberás acceder a tus proyectos como http://localhost:8080/.
MySQL/MariaDB se detiene al arrancar
Cuando el panel de control muestra que MySQL se inicia y se apaga de inmediato, casi siempre hay un servicio previo de MySQL instalado en el sistema, o bien los archivos de datos están corruptos. Revisa el archivo mysql_error.log dentro de xamppmysqldata: las líneas finales revelan el motivo exacto.
Una causa frecuente es el puerto 3306 ocupado. Cambia port=3306 por port=3307 en my.ini y actualiza también la configuración de PHP en php.ini o en el archivo de conexión de tu aplicación. Si el problema persiste, renombra la carpeta data como respaldo y ejecuta mysql_install_db para regenerar las tablas del sistema.
Error «Access denied for user root»
Este fallo aparece cuando la contraseña del usuario root de MySQL no coincide con la configurada en phpMyAdmin o en tu script. La solución pasa por editar config.inc.php en xamppphpMyAdmin y ajustar la línea $cfg[‘Servers’][$i][‘password’]. Si olvidaste la clave, detén MySQL, abre una consola como administrador y arranca el servicio con la opción –skip-grant-tables; desde ahí podrás restablecerla con ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘nueva_clave’;.
phpMyAdmin muestra «The mysqli extension is missing»
La extensión mysqli viene desactivada en algunas instalaciones. Abre php.ini, localiza la línea ;extension=mysqli y elimina el punto y coma inicial. Guarda el archivo y reinicia Apache desde el panel de XAMPP. Comprueba el resultado con un archivo info.php que contenga <?php phpinfo(); ?>.
Error 403 Forbidden o permisos denegados
Los sistemas Windows con control de cuentas de usuario pueden impedir el acceso a htdocs. Verifica que la carpeta tenga permisos de lectura para el grupo Todos. En macOS y Linux, ejecuta chmod -R 755 sobre el directorio y asegúrate de que el propietario coincida con el usuario que ejecuta Apache. Además, revisa la directiva Require local en httpd.conf: si accedes desde otro equipo de la red, cámbiala por Require all granted.
Recomendaciones para evitar futuros fallos
- Ejecuta el panel de control con privilegios de administrador.
- Detén los servicios antes de apagar el equipo para evitar corrupción de datos.
- Mantén actualizada la versión de XAMPP y haz copias periódicas de las bases de datos.
- Revisa los logs de Apache y MySQL ante cualquier comportamiento extraño; casi siempre señalan la causa raíz.
Con estas pautas, la mayoría de los errores de XAMPP se resuelven en pocos minutos y sin necesidad de recurrir a una instalación limpia.