Post actualizado el día octubre 29, 2026 by DeiviSanzPlay
Hay un escenario donde XAMPP instalar Laravel entorno se convierte en un dolor de cabeza: cuando ya tienes MySQL corriendo como servicio de Windows y el panel de XAMPP se niega a arrancar la base de datos. La ruta obvia —instalar XAMPP, lanzar Apache y MySQL, ejecutar composer create-project laravel/laravel— funciona en un equipo limpio, pero falla en cuanto hay otro motor escuchando en el puerto 3306. Y ese es el caso real de mucha gente que programa en local.
Lo cuento desde la experiencia: en una máquina con MySQL instalado por un curso anterior, el botón Start de MySQL en XAMPP se quedaba en rojo. Laravel se instalaba, el php artisan serve arrancaba, pero cualquier migración devolvía un error de conexión. La solución no era reinstalar XAMPP como sugiere el primer resultado de búsqueda, sino entender qué proceso ocupaba el puerto y decidir cuál de los dos servicios mantener.
Comprobar el puerto antes de tocar nada
Antes de configurar el entorno Laravel con XAMPP, conviene abrir una consola y ejecutar netstat -ano | findstr :3306. Si aparece un PID, ese proceso está bloqueando el puerto. En Windows puedes ver el nombre con tasklist /FI «PID eq XXXX». Saber si es mysqld.exe del servicio global o el propio XAMPP recién lanzado cambia toda la estrategia.
Si es el servicio de Windows, tienes dos caminos: detenerlo desde services.msc o cambiar el puerto de MySQL en XAMPP. Yo prefiero lo primero cuando solo trabajo en local con Laravel, porque mantener un único motor activo evita confusiones. Pero si necesitas los dos a la vez, el puerto alternativo (3307, por ejemplo) es la vía limpia.
Cambiar el puerto de MySQL en XAMPP sin romper Laravel
Editar my.ini desde el panel de XAMPP y poner port=3307 es solo la mitad del trabajo. El archivo .env del proyecto Laravel también necesita ese puerto en DB_PORT. Olvidar ese detalle es el error más común: el servidor arranca, la web carga, y el error aparece justo al correr php artisan migrate.
En este punto, instalar Laravel sobre XAMPP deja de ser una cuestión de comandos y pasa a ser de coherencia entre configuración. Si cambias el puerto en un sitio, cámbialo en el otro. No hay atajo.
Extensiones PHP que Laravel exige y XAMPP no activa por defecto
El XAMPP estándar trae muchas extensiones PHP habilitadas, pero no todas las que Laravel necesita según la versión. fileinfo, mbstring, openssl y pdo_mysql suelen estar activas; en cambio, intl o zip a veces no. Si el proyecto usa validaciones con formatos internacionales o Composer descarga paquetes comprimidos, la falta de estas extensiones rompe el flujo sin un mensaje claro.
Abrir php.ini desde el panel de XAMPP y descomentar las líneas necesarias es rápido, pero requiere reiniciar Apache después. Sin reinicio, los cambios no surten efecto y uno pierde diez minutos pensando que el problema es otro.
Cuándo XAMPP no es la opción adecuada para Laravel
XAMPP instalar Laravel entorno funciona para proyectos pequeños y aprendizaje. No es la mejor elección si trabajas con Laravel Sail, si necesitas PHP 8.3 con extensiones específicas que el paquete no incluye, o si tu equipo es Mac con Apple Silicon, donde el binario de XAMPP puede dar problemas. Tampoco lo recomendaría para producción, algo obvio pero que a veces se pasa por alto.
Alternativas como Laravel Herd, Sail con Docker o incluso el servidor embebido de PHP con SQLite eliminan la fricción de los puertos y las extensiones. La decisión depende de cuánto tiempo quieras dedicar a la infraestructura frente a escribir código.
Un orden de pasos que evita el bloqueo del puerto
Lo que a mí me funciona: primero verificar que el puerto 3306 esté libre, después arrancar MySQL en XAMPP, luego crear la base de datos con phpMyAdmin, y solo entonces ejecutar composer create-project y configurar el .env. Invertir el orden obliga a corregir el archivo de entorno después, y eso genera más errores.
Las fuentes oficiales de Laravel y la documentación de Apache Friends describen los requisitos, pero no cubren los conflictos entre servicios. Ese terreno lo resuelve la observación directa del sistema. Ninguna guía garantiza que funcione a la primera en un equipo con historial de instalaciones previas; conviene asumirlo y revisar los puertos antes de culpar al framework.
Perfiles verificables: Sitio web
Publicado el 29 de October de 2026. Última revisión: 29 de October de 2026.