Informática y Software Práctico

XAMPP instalar Laravel entorno: el error de PHP que rompe todo

Post actualizado el día octubre 29, 2026 by DeiviSanzPlay

Cuando intentas XAMPP instalar Laravel entorno local, el fallo más común no aparece en el navegador: aparece en la consola con un mensaje sobre la versión de PHP o sobre la extensión zip deshabilitada. Laravel no arranca, el instalador de Composer se queda a medias y tú miras el panel de XAMPP preguntándote qué falta. La solución exacta casi nunca es reinstalar todo: es ajustar la versión de PHP que XAMPP está sirviendo realmente desde la línea de comandos.

El problema real: dos PHP distintos conviviendo

XAMPP trae su propio PHP dentro de la carpeta de instalación, pero tu terminal puede estar usando otro PHP del sistema (por ejemplo, el que instalaste con Homebrew en macOS o con apt en Linux). Al ejecutar composer create-project laravel/laravel mi-app, Composer revisa la versión que encuentra en el PATH, no la que tiene XAMPP activa en su panel de control. Si esa versión es inferior a la que Laravel exige, el proyecto se crea incompleto o directamente falla.

Me pasó en un portátil con Windows donde XAMPP tenía PHP 8.1 seleccionado en el panel, pero la variable de entorno apuntaba a un PHP 7.4 olvidado de un proyecto anterior. El síntoma: «Your requirements could not be resolved to an installable set of packages». Nada que ver con Laravel en sí, todo con el entorno.

Lo primero, por tanto, es comprobar qué PHP ve tu terminal con php -v y compararlo con el que muestra XAMPP en su panel (Config → PHP). Si no coinciden, ahí tienes el problema.

Cómo alinear el PHP de XAMPP con el de la terminal

En Windows, edita el PATH del sistema para que la carpeta C:xamppphp aparezca antes que cualquier otra ruta con PHP. En macOS o Linux, añade al final de tu .zshrc o .bashrc una línea que exporte el binario de XAMPP, por ejemplo export PATH=»/Applications/XAMPP/bin:$PATH». Cierras la terminal, la abres de nuevo y compruebas con which php.

Con el binario correcto, la instalación de Laravel mediante Composer debería fluir. Si sigue fallando, revisa dos extensiones que XAMPP trae pero a veces desactiva: zip y fileinfo. Sin la primera, Composer descarga los paquetes pero no los descomprime; sin la segunda, algunas dependencias de Laravel se quejan al detectar tipos MIME.

Un detalle que casi nadie menciona: XAMPP en Windows a veces tiene el módulo zip comentado en php.ini porque el paquete de extensiones no está instalado por defecto. Abres C:xamppphpphp.ini, buscas ;extension=zip y quitas el punto y coma. Reinicias Apache desde el panel y repites el comando de Composer.

Crear el proyecto y apuntar el host virtual

La ruta más limpia para XAMPP instalar Laravel entorno de desarrollo no es meter el proyecto dentro de htdocs y acceder por localhost/mi-app/public. Eso funciona, sí, pero rompe las rutas absolutas y te obliga a arrastrar /public en cada URL. Mejor crear un host virtual en httpd-vhosts.conf que apunte directamente a la carpeta public del proyecto.

Ejemplo concreto: si tu proyecto está en C:xampphtdocstienda, el bloque del host virtual queda con DocumentRoot «C:/xampp/htdocs/tienda/public» y un ServerName tienda.local. Añades esa entrada al archivo hosts del sistema y desde ese momento trabajas con una URL limpia.

Esto no funciona igual en todos los casos: si tu proyecto Laravel está en una unidad de red o en una carpeta sincronizada con OneDrive, Apache puede lanzar errores de permisos que no tienen relación con Laravel. En esos escenarios conviene mover el proyecto a una ruta local sencilla antes de configurar el host virtual.

Errores que aparecen después, no durante

Muchas personas consiguen instalar Laravel y luego se topan con la pantalla en blanco o con un error 500. Casi siempre es la clave de aplicación sin generar (php artisan key:generate) o el archivo .env sin crear a partir de .env.example. También aparece el clásico error de permisos en storage y bootstrap/cache cuando trabajas en Linux o macOS con XAMPP; en Windows suele pasar desapercibido.

Para bases de datos, XAMPP trae MariaDB, que Laravel acepta sin problema configurando el driver mysql en el .env. No necesitas cambiar el puerto salvo que tengas otro MySQL ocupando el 3306, algo habitual si instalaste MySQL por separado en algún momento.

La documentación oficial de Laravel especifica los requisitos de versión de PHP para cada release, y la de XAMPP detalla qué extensiones vienen activas por defecto. Contrastar ambas antes de empezar ahorra la mitad de los problemas. Si tu versión de Laravel pide PHP 8.2 y tu XAMPP solo llega a 8.1, la solución no es forzar el composer.json: es actualizar XAMPP o cambiar a una versión de Laravel compatible con tu PHP.

Al final, el truco para XAMPP instalar Laravel entorno sin dolores de cabeza está en un solo hábito: verificar la versión de PHP que usa la terminal antes de tocar Composer. El resto son detalles que se resuelven mirando el mensaje de error con calma.


Sobre el autor: DeiviSanzPlay — Soy David Sanz, Editor y Responsable de Contenidos. Mi trabajo consiste en revisar, corregir y mejorar los contenidos de este blog para que la información sea clara, útil y esté bien estructurada. Trabajo con diferentes temáticas y verticales, por lo que una parte importante de mi día a día es analizar cada contenido, cuidar la redacción y asegurar que el lector encuentre información de calidad. Me gusta prestar atención a los detalles. Desde una corrección de estilo hasta la organización de un artículo, todo cuenta cuando se trata de crear contenidos que realmente aporten valor y sean fáciles de entender. En este blog encontrarás artículos sobre diferentes temas y sectores. Mi responsabilidad es cuidar y supervisar cada contenido para que mantenga unos estándares de calidad y ofrezca una buena experiencia a quien nos visita. Porque para mí, un buen contenido no consiste únicamente en escribir. También hay que revisar, contrastar, ordenar y pensar en la persona que está al otro lado de la pantalla.

Perfiles verificables: Sitio web

Publicado el 29 de October de 2026. Última revisión: 29 de October de 2026.