On installe les paquets nécessaires à l'ajout du dépôt
apt -y install lsb-release apt-transport-https ca-certificates wget
On récupère la clé du dépôt
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
On ajoute le dépôt
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
On met à jour tous les dépôt
apt update
On installe php 8.1
apt install php8.1
On peut également installer les modules les plus couramment utilisés
apt install php8.1-{imagick,gmp,bcmath,fpm,xml,mysql,zip,intl,ldap,gd,cli,bz2,curl,mbstring,pgsql,opcache,soap,cgi,redis}
Pour définir par défaut la nouvelle version
update-alternatives --set php /usr/bin/php8.1 update-alternatives --set phar /usr/bin/phar8.1 update-alternatives --set phar.phar /usr/bin/phar.phar8.1
Pour changer la version par défaut utilisé par Apache (On adapte le numéro de version)
a2dismod php7.4 a2disconf php7.4-fpm a2enmod php8.1 a2enconf php8.1-fpm
On redémarre ensuite les services concernés.
service apache2 restart service php8.1-fpm start service redis-server restart
Pour désinstaller l'ancienne version de PHP et tous ses modules (On adapte le numéro de version)
apt purge PHP7.4