Una versión de PHP fuera de soporte sigue funcionando a la perfección y deja de recibir arreglos de seguridad. Nada parece roto, y por eso hay sitios que se quedan ahí años; y por eso también una versión vieja de PHP es de lo primero que mira un atacante.

Dos actualizaciones distintas

  • Versiones de parche: de 8.3.10 a 8.3.11. Solo arreglos de seguridad y de errores, sin cambio de comportamiento. Aplíquelas automáticamente.
  • Versiones mayores: de 8.2 a 8.3. Pueden quitar comportamientos obsoletos de los que depende su código. Estas piden una comprobación previa.

Automatice las versiones de parche

sudo apt-get install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
grep -A5 "Allowed-Origins" /etc/apt/apt.conf.d/50unattended-upgrades

Prepare como es debido una versión mayor

  1. Averigüe qué se rompe, de forma estáticavendor/bin/rector process --dry-run o phpcs --standard=PHPCompatibility --runtime-set testVersion 8.3
  2. Instale la versión nueva junto a la vieja — las dos pueden convivir; solo el pool decide cuál corre.
  3. Apunte el entorno de pruebas a ella y ejercite el sitio — el pago, las subidas, el correo, las tareas programadas.
  4. Cambie el pool de producción y deje instalada la versión vieja — para que volver atrás sea una línea y una recarga.
sudo apt-get install -y php8.3-fpm php8.3-mysql php8.3-mbstring php8.3-curl php8.3-xml
# nginx
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
sudo nginx -t && sudo systemctl reload nginx

Luego compruebe qué está cargado, no qué está instalado

php -v                       # the CLI version
curl -sSI https://yourdomain.com | grep -i x-powered-by
php -m | sort                # the modules the site actually has
La versión de línea de órdenes y la de web van por separado. Una tarea programada puede estar corriendo con PHP 8.1 mientras el sitio corre con 8.3, y el desajuste se manifiesta como un fallo que solo ocurre de noche.
En el alojamiento de EGPHP la versión es un desplegable, las versiones de parche se aplican por usted y la versión anterior se mantiene disponible. Vea subir de versión de PHP.