14
août
2026
Comment mettre à niveau PHP de la version 8.1 vers la version 8.4
14:58

Comment mettre à niveau PHP de la version 8.1 vers la version 8.4

14 août 2026 14:58

En 2026, il existe deux manières de mettre à jour PHP.

Présentation

De nombreuses versions de Linux utilisent encore PHP 8.1. Les projets modernes peuvent nécessiter une version plus récente de 8.3 ou 8.4 pour s'exécuter. La dernière version disponible pour l'installation est PHP 8.5.

Première façon- installer PHP 8.3, 8.4 ou 8.5 depuis le dépôt oandrej PPA

sudo add-apt-repository ppa:ondrej/apache2
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php

Deuxième façon- installer PHP à partir d'un référentiel deb tiers https://packages.sury.org/php/
Dans l'article, j'ai examiné la deuxième méthode - deb de packages.sury.org/php/.

Comment installer de nouvelles versions de PHP

Tout d'abord, je recommande de désactiver le référentiel précédent et de supprimer le PHP7 obsolète.

sudo add-apt-repository --remove ppa:ondrej/php
sudo apt remove php7*

Message :

Ce référentiel est en train d'être fusionné avec https://packages.sury.org/php/

Si vous lisez sur le site https://packages.sury.org/php fichier README.txt, le chemin d'installation est le suivant :

1) préparer l'installation : mettez à jour le cache du package et installez les utilitaires nécessaires pour télécharger le fichier de clé du référentiel depuis Internet.

sudo apt-get update
sudo apt-get -y install lsb-release ca-certificates curl

2) à partir du package debsuryorg-archive-keyring.deb téléchargé depuis https://packages.sury.org/
installez la clé de signature du référentiel sur votre PC local.

Tout d’abord, téléchargez le fichier DEB d’installation du package dans le dossier tmp:

curl -sSLo /tmp/debsuryorg-archive-keyring.deb \
https://packages.sury.org/debsuryorg-archive-keyring.deb

Installez ensuite le package avec la clé

sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb

La clé apparaîtra dans le dossier /usr/share/keyrings/,
où est le nom du fichier trousseau :debsuryorg-archive-keyring.gpg

3) Dans le dossier /etc/apt/sources.list.d/, créez une entrée pour le nouveau référentiel

Le fichier php.list a un contenu d'une ligne :

deb [signed-by=/usr/share/keyrings/debsuryorg-archive-keyring.gpg] https://packages.sury.org/php/ jammy main

Où au lieu de jammy vous devez indiquer le nom de code de votre distribution.
Le nom de la distribution peut être trouvé avec la commande

lsb_release -a

Vous pouvez également connaître le nom de code grâce au numéro de version Linux.
Les versions les plus populaires de Linux ont des mots de code :
Ubuntu 20.04 LTS-focale
Ubuntu 22.04 LTS-confiture
*Ubuntu 24.04 LTS-noble

  • Linux Menthe 21 -confiture
  • Linux Menthe 22 -noble
  • Debian 11 -cible
  • Debian 12 -rat de bibliothèque
  • Debian 13 -Trixie

4) Installation de PHP 8.4

sudo apt-get update
sudo apt-get install php8.4-common

5) Vérification de la version de PHP

php --version

Résultat : PHP 8.4.24

La version de PHP a été mise à jour avec succès.

Problèmes et solutions

Sous Linux Mint 21, la mise à jour de php8.4-gd posait problème en raison d'une dépendance à libgd3, qui requiert une version supérieure ou égale à 2.3.3, alors que la version proposée dans le dépôt était la 2.3.0.

Solution : La priorité du dépôt du système d'exploitation Linux étant supérieure à celle d'un dépôt tiers, il est possible que des programmes et des bibliothèques ne puissent pas être installés depuis ce dernier.

Créer un fichier pour indiquer la priorité d'installation, c'est-à-dire épingler les packages dans un référentiel : APT Pinning

sudo nano /etc/apt/preferences

Contenu du fichier :

<pré>Paquet : libgd3
Épingle : version o=deb.sury.org
Priorité de broche : 1001

Forfait : php*
Épingle : version o=deb.sury.org
Priorité de broche : 1001

1001 - signifie la priorité la plus élevée, qui est supérieure à celle du référentiel du système d'exploitation.

Auparavant, la bibliothèque LibGD3 du référentiel système Ubuntu était en conflit avec les exigences du module graphique PHP.php8.4-gd utilisez LibGD3 version 2.3.3,

  • dans le référentiel système version 2.3.0,
  • La version 2.3.3 du référentiel deb.sury.org sera installée avec une priorité plus élevée de 1001.

La commande dit ceci :

apt-cache policy libgd3

Désormais, il n'y aura plus d'erreur. Nous procédons comme d'habitude :

sudo apt-get update
sudo apt-get install php8.4-common

Vérification de la version PHP

php --version

Changer la version de PHP dans le système d'exploitation par défaut

Uniquement si la version PHP n'est pas celle requise :

sudo update-alternatives --config php

Installation du module serveur HTTP Apache

sudo apt-get install libapache2-mod-php8.4

Causes de l'erreur "Constante non définie IMG_JPG"

Lors de l'exécution d'un projet PHP utilisant des graphiques, vous pouvez recevoir une erreur concernant IMG_JPG

Si vous avez effectué les étapes précédentes (installation de php une des dernières 8.x versions), vous devez en plus installer le module :

sudo apt-get install libgd3
sudo apt-get install php8.4-gd

Liste des modules Apache2 à installer

Pour le projet, j'ai en outre installé les packages et modules du serveur Web Apache :

sudo apt install php8.4 php8.4-cli php8.4-common
sudo apt install libapache2-mod-php8.4 
sudo apt install php8.4-curl php8.4-intl php8.4-mbstring php8.4-mysql
sudo apt install php8.4-readline php8.4-xml php8.4-yaml php8.4-zip php8.4-apcu

Activation du module PHP

sudo a2enmod php8.4
sudo service apache2 restart

Commutation de la configuration FastCGI FPM/module standard

L'état du module peut être trouvé avec la commande

sudo systemctl status php8.4-fpm

Si le module FPM est absent ou si sa version est identique à celle de PHP (par exemple, 8.4), ne faites rien.

Si les versions de PHP et de FPM sont différentes, désactivez les modules FCGI et FPM :

sudo a2dismod actions alias proxy_fcgi
sudo a2disconf php8.4-fpm

Et réactivez-les :

sudo a2enconf php8.4-fpm
sudo a2enmod actions alias proxy_fcgi

Cet article a été testé avec PHP version 8.4, mais peut fonctionner avec les versions 8.3 et 8.5 si vous remplacez les numéros correspondants dans les commandes du terminal.



Publications connexes