remplacer php7.0 par php 7.1/7.2/7.3 debian 9 (Stretch)
Il y a un dépôt pour les version récentes de php: https://packages.sury.org/
Pour l’installer regardons le README.txt, c’est une bonne habitude à prendre: https://packages.sury.org/php/README.txt
Il faut installer 3 packages:
- apt-transport-https
- lsb-release
- ca-certificates
Avant d’installer, on peut vérifier si ils sont déjà présents:
dpkg --list apt-transport-https lsb-release ca-certificates
ou:
apt list --installed | grep "apt-transport-https"
apt list --installed | grep "lsb-release"
apt list --installed | grep "ca-certificates"
Si ça n’est pas installé:
apt install apt-transport-https lsb-release ca-certificates
(j'utilise apt au lieu de apt-get, un article en anglais sur les différences: https://itsfoss.com/apt-vs-apt-get-difference/)
On récupère la clef GPG du dépôt:
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
On mets le dépôt dans un fichier de sources de apt:
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
Mise à jour de la liste des paquets disponibles
apt update
D’abord je fais la liste des packages php déjà installés (pour avoir un historique de parano):
apt list --installed php* > php_packages_installed
Pour installer la dernière version de PHP il suffit de faire
apt upgrade
J’aime bien enlever ce qui n’est pas nécessaire:
apt remove php7.0* libapache2-mod-php7.0
Pour installer une version spécifique de PHP disons 7.2, je récupère tous les packages avec php7.0 dans leur noms depuis ma liste précédemment sauvegardée:
cat php_packages_installed | grep "php7.0" > php_packages_installed_php7_0
sed -i 's/php7.0/php7.2/g' php_packages_installed_php7_0
xargs -L1 -a php_packages_installed_php7_0 echo | cut -d/ -f1 > php_packages_to_install
Avant de faire l’installation des packages, une petite lecture de https://www.php.net/manual/en/migration71.deprecated.php
Par exemple, j’avais mcrypt installé …
sed -i '/php7.2-mcrypt/d' php_packages_to_install
Pour installer:
apt install $(xargs -a php_packages_to_install echo )
J’imagine qu’il est possible d’optimiser mes commandes bash, ou bien une option de conf de APT pour sélectionner php7.2, mais c’est comme ça que j’ai procédé pour tester dans ma vm.
Les commentaires/améliorations/informations sont les bienvenus !
ps: si php ne fonctionne pas vous pouvez essayer de faire :
dpkg-reconfigure libapache2-mod-php7.3
Comments ( 9 )