Si trabajamos habitualmente con PHP en local, tarde o temprano nos tocará actualizar su versión.
En este artículo vamos a ver cómo podemos hacerlo utilizando XAMPP en Windows.
El procedimiento que vamos a utilizar consiste en sustituir la versión de PHP incluida en nuestra instalación de XAMPP por otra diferente, conservando previamente una copia de la versión anterior por si necesitamos volver atrás.
Antes de empezar
Haz una copia de seguridad de tu instalación de XAMPP y, especialmente, de la carpeta php y de cualquier configuración que hayas modificado manualmente.
Actualizar PHP en XAMPP
En una instalación habitual de XAMPP, la versión de PHP se encuentra en:
C:\xampp\php
La idea es sustituir esa carpeta por la correspondiente a la nueva versión de PHP, conservando previamente una copia de la instalación anterior.
1. Detener Apache y hacer una copia de la versión actual
Lo primero que debemos hacer es detener Apache desde el panel de control de XAMPP.
Después accedemos al directorio:
C:\xampp
y renombramos la carpeta:
php
Por ejemplo:
php_old
No borres la instalación anterior
Mantener la carpeta antigua durante las primeras pruebas nos permitirá volver atrás rápidamente si algo no funciona.
2. Descargar la nueva versión de PHP
Ahora necesitamos descargar la versión de PHP que queremos utilizar.
Y aquí tenemos que hacer una pequeña pausa.
No todas las versiones de PHP pueden sustituirse simplemente copiando una carpeta. Debemos comprobar que la versión elegida sea compatible con nuestra instalación de XAMPP y, especialmente, con la versión de Apache que estamos utilizando.
También debemos tener en cuenta:
- La arquitectura utilizada, normalmente 64 bits.
- La compatibilidad entre PHP y Apache.
- El tipo de compilación de PHP.
- Las extensiones que necesita nuestro proyecto.
- Los cambios de configuración existentes entre versiones.
Cuanto mayor sea el salto entre versiones, más importante será comprobar la compatibilidad antes de realizar el cambio.
3. Crear la nueva carpeta PHP
Una vez descargada y descomprimida la versión correspondiente, creamos nuevamente:
C:\xampp\php
y colocamos dentro los archivos de la nueva versión.
Al finalizar tendremos algo parecido a:
C:\xampp\php C:\xampp\php_old
La primera carpeta contiene nuestra nueva versión de PHP y la segunda conserva la instalación anterior.
4. Recuperar nuestra configuración
Uno de los archivos más importantes de nuestra instalación de PHP es:
php.ini
Si nuestra instalación anterior tenía una configuración personalizada, debemos trasladar esos cambios a la nueva versión.
Pero no recomiendo copiar ciegamente todo el php.ini antiguo sobre el nuevo.
Entre versiones pueden cambiar directivas, extensiones disponibles, valores predeterminados y configuraciones que hayan quedado obsoletas.
Una buena práctica
Utiliza el php.ini nuevo como base y traslada únicamente las configuraciones que realmente necesites: límites de memoria, tamaño máximo de subida, extensiones, zona horaria, etc.
Por ejemplo, si anteriormente habíamos configurado:
upload_max_filesize = 128M post_max_size = 128M memory_limit = 256M
podemos trasladar esas configuraciones a la nueva instalación siempre que sigan siendo necesarias y sean compatibles con nuestro entorno.
5. Comprobar la configuración de Apache
En este punto aparece una cuestión especialmente importante cuando trabajamos con instalaciones antiguas de XAMPP.
Apache puede estar configurado para cargar PHP mediante determinados módulos y archivos DLL correspondientes a una versión concreta.
En algunas instalaciones podemos encontrar la configuración en:
C:\xampp\apache\conf\extra\http-xampp.conf
En una instalación antigua podríamos encontrarnos, por ejemplo, con referencias como estas:
LoadFile "C:/xampp/php/php5ts.dll" LoadFile "C:/xampp/php/libpq.dll" LoadModule php5_module "C:/xampp/php/php5apache2_4.dll"
Si estamos realizando una actualización de una instalación antigua de PHP 5 a PHP 7, esas referencias pueden necesitar adaptarse a los archivos correspondientes de la nueva versión.
Por ejemplo:
LoadFile "C:/xampp/php/php7ts.dll" LoadFile "C:/xampp/php/libpq.dll" LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"
También podríamos encontrar otras referencias a php5_module dentro del mismo archivo que necesiten ser revisadas.
Importante: esto corresponde principalmente a instalaciones antiguas
No debemos copiar estas líneas literalmente en una instalación moderna de XAMPP.
Los nombres de los archivos, las DLL disponibles y la forma en la que PHP se integra con Apache pueden cambiar entre versiones.
Si nuestro XAMPP actual ya está preparado para la versión de PHP que estamos instalando, probablemente no tengamos que modificar manualmente http-xampp.conf.
6. Reiniciar Apache
Una vez sustituida la versión de PHP y revisada la configuración, volvemos al panel de control de XAMPP e iniciamos Apache.
Si Apache arranca correctamente, ya tenemos una primera señal de que la configuración es válida.
Si no arranca, no empecemos a borrar archivos ni a cambiar configuraciones al azar.
Lo primero será revisar los logs de Apache y buscar referencias a:
- DLL que no se encuentran.
- Módulos incompatibles.
- Extensiones de PHP que no pueden cargarse.
- Errores de configuración.
- Conflictos entre versiones.
7. Comprobar la versión de PHP
Desde una consola podemos comprobar la versión de PHP disponible mediante:
php -v
Por ejemplo, podríamos obtener algo parecido a:
PHP 8.x.x (cli) ...
Pero aquí hay una pequeña trampa.
El resultado de php -v corresponde al PHP disponible desde la línea de comandos y no necesariamente tiene que coincidir con el PHP que está utilizando Apache.
Para comprobar la versión que utiliza realmente nuestro servidor web podemos crear temporalmente un archivo llamado:
phpinfo.php
con este contenido:
<?php phpinfo();
Lo colocamos en el directorio público de nuestro proyecto y accedemos desde el navegador.
Por ejemplo:
http://localhost/phpinfo.php
En la página resultante podremos comprobar la versión de PHP utilizada por Apache, además de las extensiones cargadas y buena parte de la configuración activa.
No confundas PHP CLI con PHP de Apache
Es perfectamente posible que php -v y phpinfo() muestren versiones diferentes si tenemos varias instalaciones de PHP configuradas en Windows.
Una vez realizada la comprobación, conviene eliminar el archivo phpinfo.php si ya no lo necesitamos.
¿Qué ocurre si pasamos de PHP 5 a PHP 7?
Aquí la cosa cambia bastante.
Pasar de PHP 5 a PHP 7 no consiste únicamente en cambiar una carpeta. El salto entre ambas versiones introdujo cambios importantes en el lenguaje y muchas aplicaciones antiguas dejaron de funcionar correctamente sin modificaciones.
Además, a día de hoy, PHP 5 y PHP 7 ya no deberían utilizarse en instalaciones nuevas.
Si tenemos un proyecto antiguo que todavía depende de ellas, lo recomendable es plantear la actualización como una migración y comprobar la compatibilidad de la aplicación antes de realizar el cambio.
Especialmente deberíamos revisar:
- Código PHP antiguo.
- Funciones eliminadas u obsoletas.
- Frameworks antiguos.
- Plugins y librerías de terceros.
- Extensiones utilizadas por nuestra aplicación.
- Configuraciones específicas de Apache y PHP.
Cuanto mayor sea el salto, mayor será la comprobación
Actualizar de una versión de PHP a otra relativamente cercana no es lo mismo que intentar recuperar un proyecto escrito hace años y llevarlo a una versión moderna de PHP.
¿Y si algo sale mal?
Precisamente por eso hemos conservado nuestra antigua instalación:
C:\xampp\php_old
Si la nueva versión no funciona y necesitamos recuperar temporalmente nuestro entorno anterior, podemos detener Apache, retirar la nueva carpeta php y restaurar la anterior.
Después volveríamos a comprobar la configuración de Apache y arrancaríamos nuevamente el servicio.
No borres la versión antigua hasta terminar las pruebas
Una vez comprobado que Apache, PHP y nuestros proyectos funcionan correctamente con la nueva versión, podremos eliminar la copia antigua si ya no la necesitamos.
Errores habituales después de actualizar PHP
Si Apache arranca pero nuestro proyecto deja de funcionar, el problema no tiene por qué estar en XAMPP.
Una actualización de PHP puede sacar a la luz código antiguo o incompatibilidades que antes no eran evidentes.
Por eso conviene revisar:
- Los logs de Apache.
- Los errores de PHP.
- Las extensiones cargadas.
- El archivo
php.ini. - La versión de Apache.
- Las dependencias del proyecto.
- El código que utilice funciones obsoletas o eliminadas.
Si estamos utilizando Composer, también merece la pena revisar las dependencias del proyecto y comprobar qué versiones de PHP soportan.
Un último detalle: phpinfo()
phpinfo() es tremendamente útil para comprobar nuestra instalación, pero no es buena idea dejarlo permanentemente accesible desde una instalación que pueda ser consultada por terceros.
La página puede mostrar una cantidad considerable de información sobre nuestra configuración de PHP y del servidor.
Por tanto, una vez terminadas las comprobaciones:
phpinfo.php
fuera.
Conclusión
Actualizar PHP en una instalación local de XAMPP puede ser bastante sencillo, pero el procedimiento depende mucho de qué versión tenemos instalada y a cuál queremos actualizar.
En instalaciones antiguas puede ser necesario modificar manualmente la configuración de Apache y adaptar las referencias de http-xampp.conf. En instalaciones más modernas, esa modificación puede no ser necesaria y debemos seguir el procedimiento correspondiente a la versión de XAMPP que estemos utilizando.
Lo que sí sigue siendo válido independientemente de la versión es una regla bastante sencilla:
Haz una copia antes de tocar nada.
Después:
Backup → actualización → configuración → pruebas → comprobación.
Y si algo falla, siempre podremos volver a nuestra versión anterior mientras investigamos qué ha ocurrido.
La actualización debería ser reversible
Conservar temporalmente la instalación anterior nos permite experimentar con mucha más tranquilidad. Y en un entorno de desarrollo local, eso es precisamente lo que buscamos.
Así que ya podemos actualizar nuestra versión de PHP en XAMPP sin tener que jugárnosla a una sola carta.
Y, como siempre: si funciona, no lo toques… hasta que llegue la siguiente versión de PHP.
“`
Visitas: 15880
Automation & Data Specialist | Web Development | Data Processing & Integration
