Basculer entre plusieurs versions de PHP sur Ubuntu
Ce bref tutoriel vous guide à travers les étapes pour changer entre plusieurs versions de PHP sur Ubuntu Linux et ses dérivés. Ce guide a été testé officiellement sur l'édition serveur Ubuntu 18.04 LTS. Cependant, il peut également fonctionner sur des versions Ubuntu plus récentes ainsi que plus anciennes.
Introduction
Parfois, la version la plus récente d'un paquet installé peut ne pas fonctionner comme vous l'attendez. Votre application peut ne pas être compatible avec le paquet mis à jour et elle ne prend en charge qu'une certaine ancienne version du paquet.
Dans de tels cas, vous pouvez simplement rétrograder le paquet problématique vers sa version antérieure fonctionnelle en un rien de temps. Consultez nos anciens guides sur la façon de rétrograder un paquet dans Ubuntu et ses variantes ainsi que sur la façon de rétrograder un paquet dans Arch Linux et ses dérivés aux liens suivants :
- Comment rétrograder un paquet dans Ubuntu
- Comment rétrograder un paquet dans Arch Linux
Dans certaines situations, vous n'avez pas besoin de rétrograder les paquets problématiques. Sous Linux, nous pouvons utiliser plusieurs versions du même paquet en même temps, côte à côte.
Par exemple, supposons que vous testez une application PHP dans une pile LAMP déployée sur Ubuntu 18.04 LTS. Après un certain temps, vous découvrez que l'application fonctionnait bien avec PHP 5.6, mais pas avec PHP 7.2 (Ubuntu 18.04 LTS installe PHP 7.x par défaut).
Allez-vous réinstaller PHP ou toute la pile LAMP à nouveau ? Ce n’est pas nécessaire.
Vous n'avez même pas besoin de rétrograder le PHP à sa version précédente. Vous pouvez simplement passer à la version PHP qui fonctionnait auparavant en quelques minutes.
1. Passer entre plusieurs versions de PHP
Vérifions la version par défaut de PHP installée en utilisant la commande :
php -vExemple de sortie :
PHP 7.2.7-0ubuntu0.18.04.2 (cli) (built: Jul 4 2018 16:55:24) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.7-0ubuntu0.18.04.2, Copyright (c) 1999-2018, by Zend TechnologiesComme vous pouvez le voir, la version installée de PHP est 7.2.7.
Après avoir testé votre application pendant quelques jours, vous découvrez que votre application ne prend pas en charge PHP 7.2. Dans ce cas, il est judicieux d'avoir à la fois la version PHP 5.x et la version PHP 7.x, afin de pouvoir passer facilement d'une version prise en charge à une autre à tout moment.
Vous n'avez pas besoin de supprimer PHP 7.x ou de réinstaller la pile LAMP. Vous pouvez utiliser les versions PHP 5.x et 7.x ensemble.
Je suppose que vous n'avez pas encore désinstallé PHP 5.6 de votre système. Au cas où vous l'auriez déjà supprimé, vous pouvez le réinstaller en utilisant un PPA comme ci-dessous.
Vous pouvez installer PHP 5.6 depuis un PPA :
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
sudo apt install php5.61.1. Passer de PHP 7.x à PHP 5.x
1.1.1 Désactivez d'abord le module PHP 7.2 en utilisant la commande :
sudo a2dismod php7.2Exemple de sortie :
Module php7.2 disabled.
To activate the new configuration, you need to run:
systemctl restart apache21.1.2. Ensuite, activez le module PHP 5.6 :
sudo a2enmod php5.61.1.3 Définir PHP 5.6 comme version par défaut en utilisant la commande :
sudo update-alternatives --set php /usr/bin/php5.61.1.4. Alternativement, vous pouvez exécuter la commande suivante pour définir quelle version de PHP au niveau du système vous souhaitez utiliser par défaut.
sudo update-alternatives --config php1.1.5. Entrez le numéro de sélection pour le définir comme version par défaut ou appuyez simplement sur ENTRÉE pour conserver le choix actuel.
1.1.6. Si vous avez installé d'autres extensions PHP, définissez-les également comme par défaut.
sudo update-alternatives --set phar /usr/bin/phar5.61.1.7. Enfin, redémarrez votre serveur web Apache :
sudo systemctl restart apache2Maintenant, vérifiez si PHP 5.6 est la version par défaut ou non :
php -vExemple de sortie :
PHP 5.6.37-1+ubuntu18.04.1+deb.sury.org+1 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies1.2. Passer de PHP 5.x à PHP 7.x
De même, vous pouvez passer de la version PHP 5.x à PHP 7.x en exécutant les commandes suivantes l'une après l'autre.
sudo a2enmod php7.2sudo a2dismod php5.6sudo update-alternatives --set php /usr/bin/php7.2sudo systemctl restart apache2Un mot de prudence :
La dernière version stable de PHP 5.6 a atteint la fin du support actif depuis le 19 janvier 2017. Cependant, PHP 5.6 continuera à recevoir un support pour les problèmes de sécurité critiques jusqu'au 31 décembre 2018. Il est donc recommandé de mettre à jour toutes vos applications PHP pour qu'elles soient compatibles avec PHP 7.x dès que possible.
Si vous voulez empêcher PHP d'être mis à jour automatiquement à l'avenir, consultez le guide suivant.
- Comment empêcher un paquet d'être installé, mis à jour ou supprimé automatiquement dans Ubuntu
Conclusion
Et voilà pour le moment. Voici comment nous installons plusieurs versions de PHP sous Ubuntu. Avec l'aide de la commande update-alternatives, nous pouvons rapidement passer d'une version de PHP à une autre sous Ubuntu et définir la version PHP par défaut.
