Une version de PHP sortie du support tourne encore parfaitement et cesse de recevoir des correctifs de sécurité. Rien ne semble cassé, et c'est pour cela que des sites y restent des années - et c'est aussi pour cela qu'une vieille version de PHP est une des premières choses qu'un attaquant vérifie.

Deux mises à niveau différentes

  • Les versions correctives - de 8.3.10 à 8.3.11. Uniquement des corrections de sécurité et de bogues, aucun changement de comportement. Appliquez-les automatiquement.
  • Les versions majeures - de 8.2 à 8.3. Elles peuvent retirer un comportement obsolète sur lequel votre code s'appuie. Celles-là demandent d'abord une vérification.

Automatiser les versions correctives

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

Préparer une version majeure comme il faut

  1. Découvrir ce qui casse, de façon statiquevendor/bin/rector process --dry-run ou phpcs --standard=PHPCompatibility --runtime-set testVersion 8.3
  2. Installer la nouvelle version à côté de l'ancienne — les deux peuvent coexister ; seul le pool décide laquelle tourne.
  3. Y pointer la préproduction et faire tourner le site — le paiement, les téléversements, le courrier, les tâches cron.
  4. Basculer le pool de production, garder l'ancienne version installée — pour que le retour arrière soit une ligne et un rechargement.
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

Vérifier ensuite ce qui est chargé, pas ce qui est installé

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 version en ligne de commande et la version web sont distinctes. Une tâche cron peut tourner sous PHP 8.1 pendant que le site tourne en 8.3, et l'écart se manifeste par une panne qui n'arrive jamais qu'en pleine nuit.
Sur l'hébergement EGPHP, la version est un menu déroulant, les versions correctives sont appliquées pour vous, et la version précédente reste disponible. Voyez passer à une nouvelle version de PHP.