Artisan Développeur

Qualité, amélioration continue, agilité.

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 d’optimiser mes commandes bash, ou bien une option de conf de APT pour séléctionner php7.2, mais c’est comme ça que j’ai procédé pour tester dans ma vm.

Les commentaires/améliorations/informatinos sont les bienvenus !

ps: si php ne fonctionne pas vous pouvez essayer de faire :

dpkg-reconfigure libapache2-mod-php7.3

Leave a reply

Your email address will not be published.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.