Post actualizado el día octubre 29, 2026 by DeiviSanzPlay
Cuando alguien busca XAMPP con PHP versión múltiple casi siempre está en el mismo punto: tiene un proyecto viejo que exige PHP 7.4, otro nuevo que pide PHP 8.2 y no quiere desinstalar y reinstalar el entorno cada vez que cambia de carpeta. Hay dos caminos reales para conseguirlo, y no rinden igual.
Opción A: cambiar la carpeta php de XAMPP por la versión que necesites, editando el httpd.conf y reiniciando Apache. Opción B: instalar varias carpetas de PHP dentro de XAMPP y alternar entre ellas con un virtual host o un script de arranque. La primera es la que todo el mundo encuentra en foros; la segunda es la que aguanta el uso diario.
Por qué la opción A se rompe antes de lo esperado
Renombrar la carpeta y tocar el LoadModule php_module funciona la primera vez. El problema aparece cuando tienes tres o cuatro proyectos y cambias de uno a otro varias veces al día: cada cambio implica editar texto, reiniciar Apache y rezar para que phpMyAdmin siga cargando con la versión nueva. En mi caso, un phpMyAdmin antiguo dejó de funcionar al pasar a PHP 8 porque usaba funciones deprecadas, y el error no venía de XAMPP sino de la versión de la herramienta.
Esta vía tiene otra limitación clara: no sirve para ejecutar dos versiones de PHP a la vez. Si estás probando una migración y necesitas comparar el mismo endpoint en PHP 8.1 y 8.3 en paralelo, la opción A te obliga a reiniciar entre prueba y prueba.
La opción B: varias carpetas de PHP y un virtual host por versión
La alternativa consiste en descargar los binarios de PHP para Windows desde las builds oficiales de windows.php.net, descomprimirlos en carpetas separadas dentro de C:xamppphp-versions (por ejemplo php74, php82, php83) y configurar un virtual host por proyecto apuntando a la versión correspondiente.
En httpd-vhosts.conf puedes declarar algo así:
<VirtualHost *:80>
DocumentRoot «C:/proyectos/legacy»
FcgidInitialEnv PHPRC «C:/xampp/php-versions/php74»
</VirtualHost>
Con mod_fcgid activo, cada virtual host carga su propio php-cgi.exe de la carpeta indicada. El resultado práctico: legacy.local corre en PHP 7.4 mientras nuevo.local corre en PHP 8.3, sin reiniciar Apache entre cambios. El arranque de XAMPP con PHP versión múltiple deja de ser un acto de fe y pasa a ser una configuración estable.
Qué gana y por qué
Gana la opción B, sin discusión, si trabajas con más de dos proyectos o si mantienes código heredado junto a código actual. La razón no es la elegancia técnica sino el coste de cambio: pasar de un proyecto a otro es abrir otra URL, no editar un archivo de configuración. La opción A solo tiene sentido si tu caso es puntual, con un único proyecto y un cambio de versión que ocurre una vez.
Ahora el matiz incómodo: la opción B no funciona igual de bien en todos los setups. En Linux y macOS el flujo con mod_fcgid o php-fpm es más limpio; en Windows, la combinación de XAMPP con FastCGI requiere revisar rutas absolutas con barra normal, permisos de la carpeta de logs y la extensión mod_fcgid habilitada en httpd.conf. Si tu XAMPP es una instalación antigua con Apache 2.2, olvídate de este enfoque: no hay soporte decente para FastCGI y te tocará migrar a Apache 2.4 primero.
Un caso real de cambio de versión
Hace unos meses migré un WordPress con plugins que declaraban compatibilidad máxima con PHP 7.4. La tentación era cambiar la carpeta de PHP de XAMPP, hacer la prueba y volver. Lo hice dos veces y a la tercera decidí montar la estructura con versiones paralelas. El tiempo que perdí en la configuración inicial lo recuperé en la semana siguiente, cuando el cliente pidió probar un plugin bajo PHP 8.1 sin tocar el entorno del sitio en producción.
Ese es el patrón que se repite: XAMPP con PHP versión múltiple no te ahorra la primera hora, te ahorra las siguientes diez.
Limitaciones que conviene saber antes
No es magia. Cada versión de PHP que añadas necesita sus propias extensiones activadas en su php.ini: si tu proyecto usa mysqli, gd o intl, tendrás que habilitarlas en la carpeta correspondiente, no en la global. Tampoco puedes compartir la misma sesión PHP entre versiones distintas sin revisar la configuración de session.save_path, porque los formatos han cambiado entre ramas.
Y hay un límite de fondo: esto es un entorno de desarrollo local. Si tu objetivo es reproducir producción con precisión, la solución correcta es un contenedor Docker con la imagen exacta de PHP, no XAMPP. La versión múltiple de PHP dentro de XAMPP es una comodidad para quien ya trabaja con XAMPP y no quiere cambiar de stack, no un sustituto de paridad con el servidor.
Conclusión práctica
Si vienes de la opción A porque es la que aparece en los foros, pruébala una tarde y mide cuántas veces reinicias Apache. Si la respuesta te incomoda, monta la opción B. La documentación oficial de XAMPP y las notas de windows.php.net son suficientes para hacerlo, aunque ninguna de las dos trata el tema de versiones paralelas como un flujo completo: eso lo aprendes montándolo.
Perfiles verificables: Sitio web
Publicado el 29 de October de 2026. Última revisión: 29 de October de 2026.