PHP est le moteur principal de nombreux sites web, y compris ceux basés sur WordPress, Joomla ou des frameworks comme Laravel. Garder PHP à jour améliore la performance, la compatibilité avec les extensions modernes, et surtout la sécurité.
Avec chaque nouvelle version, PHP améliore son moteur interne, propose des optimisations de mémoire, ajoute de nouvelles fonctions utiles et retire des fonctionnalités obsolètes. Migrer de PHP 8.2 à 8.4 permet donc d’assurer une meilleure pérennité de votre projet web.
Dans ce tutoriel, je vous montre comment effectuer la mise à jour sur un site WordPress fonctionnant sous Nginx, mais le principe reste similaire pour d’autres types de sites.
Ce guide montre étape par étape comment mettre à jour PHP de la version 8.2.28 vers 8.4.x dans un environnement basé sur Nginx.
Avant de commencer cette mise à jour, assurez-vous d’avoir une sauvegarde de votre site web. Idéalement, effectuez cette opération lors d’une période de faible trafic afin de minimiser les risques en cas de problème.
Il est également fortement recommandé de tester la procédure sur une machine virtuelle (VM) ou un serveur de test avant toute mise en production. Enfin, vérifiez la compatibilité des extensions, modules et plugins de votre site avec PHP 8.4.
Vérification de la version actuelle :
php -v
Vous pouvez aussi vérifier la version de PHP utilisée par WordPress dans la section Outils > Santé du site > Informations > Serveur.
Étape 1 : Installer PHP 8.4 et les modules nécessaires
Ajouter le nouveau dépôt PHP
sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common curl gnupg2
Ajouter le nouveau dépôt GPG et l’entrée APT :
curl -fsSL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/sury.gpg echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
Mettre à jour les dépôts :
sudo apt update
Installer PHP 8.4 avec FPM et modules courants :
sudo apt update && sudo apt install -y \ php8.4 \ php8.4-fpm \ php8.4-cli \ php8.4-mysql \ php8.4-curl \ php8.4-gd \ php8.4-xml \ php8.4-mbstring \ php8.4-zip \ php8.4-soap \ php8.4-intl \ php8.4-opcache
Optionnel : utiliser le script migrate_php_modules.sh
Ce script disponible sur mon dépôt GitLab permet de :
– détecter automatiquement les modules PHP installés avec 8.2
– installer leurs équivalents pour PHP 8.4
Le script est disponible sur mon dépôt GitLab. Il suffit de le télécharger, de lui donner les droits d’exécution, puis de l’exécuter :
./migrate_php_modules.sh 8.2 8.4
Vérifier que PHP 8.4 est bien installé :
php8.4 -v
Activer et démarrer PHP-FPM (pour Nginx) :
sudo systemctl enable --now php8.4-fpm
Pour une vérification plus poussée, utilisez le script check_php_versions.sh pour comparer les sockets, les services FPM et les fichiers php.ini entre versions PHP.
Si tout est correct, passez à l’étape suivante.
Étape 2 : Configuration pour Nginx
Éditer le fichier du site :
sudo nano /etc/nginx/sites-available/votresite
Dans mon cas, parce que je viens d’installer le serveur web pour démonstration :
sudo nano /etc/nginx/sites-available/default
Remplacer cette ligne :
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
par :
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
Tester la configuration Nginx :
sudo nginx -t
Recharger Nginx :
sudo systemctl reload nginx
Étape 3 : Vérifier la mise à jour
Dans WordPress :
– Aller dans Outils > Santé du site > Informations > Serveur
– Vérifier que la version PHP utilisée est bien 8.4.x
Alternative : fichier phpinfo()
Créer un fichier de test PHP :
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
Aller sur http://votresite/phpinfo.php et vérifier la version. Supprimer le fichier ensuite :
Supprimer ce fichier ensuite :
rm /var/www/html/phpinfo.php
Étape 4 : Nettoyage de PHP 8.2
Si tout fonctionne correctement et que vous avez testé la stabilité de votre site, vous pouvez désinstaller PHP 8.2 :
sudo apt remove php8.2 php8.2-fpm sudo apt autoremove
sudo apt remove php8.2 php8.2-fpm sudo apt autoremove
Vous avez effectué avec succès la mise à jour de PHP 8.2 vers PHP 8.4 sur un serveur Nginx. Vous bénéficiez désormais des dernières améliorations de performance, compatibilité et sécurité.
Ce processus s’applique également à d’autres mises à jour majeures comme de 7.4 vers 8.0, ou de 8.0 vers 8.4.
N’oubliez pas : testez toujours en local avant toute mise à jour en production.
Bonne chance !