Lorsque l’on développe en PHP de multiples projets, il peut arriver qu’on doive jongler entre plusieurs versions de PHP. On peut bien sûr compiler et installer plusieurs exécutables et configurer chaque projet pour lancer la version requise, mais il est beaucoup plus confortable de confier cette tâche à un manager.
Aujourd’hui, je vous présente phpbrew.
Attention : phpbrew n’est disponible que sous Linux ou OsX. Pour installer un environnement Linux sous Windows, je vous renvoie vers mon article précédent : Installer Linux sous Windows 10.
Cet article ne traite que de l’utilisation sous Ubuntu, utilisé sous Windows 10 lors de la rédaction de l’article.
Installation
Téléchargez l’utilitaire avec la commande suivante :
curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
Donnez les droit d’exécution à l’utilitaire :
chmod +x phpbrew
Déplacez l’utilitaire dans l’un des répertoires du $PATH
sudo mv phpbrew /usr/local/bin/phpbrew
Dépendances
Installez les dépendances
sudo apt-get install php php-curl php-dev php-pear autoconf automake curl libcurl3-openssl-dev build-essential libxslt1-dev re2c libxml2 libxml2-dev php-cli bison libbz2-dev libreadline-dev libicu-dev libcurl4-gnutls-dev libmcrypt-dev
Note : merci à l’auteur du blog https://blog.kmelia.net/testing/prise-en-main-rapide-de-phpbrew/13224 pour cette liste des dépendances car celle de la documentation officielle ne fonctionne pas directement :). Je l’ai complétée en fonction des besoins d’aujourd’hui.
Initialisez phpbrew
Initialisez phpbrew en lançant la commande suivante :
phpbrew init
Phpbrew aura à gérer les alias vers les exécutables php. Pour cela, il gère son propre ficher .bashrc que votre propre bashrc devra simplement charger. Ajoutez à votre fichier ~/.bashrc la ligne suivante :
[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
puis rechargez votre bashrc :
source ~/.phpbrew/bashrc
Installez une version de PHP
Vous obtenez la liste des versions de PHP gérables par phpbrew à partir de la commande :
phpbrew known
A la rédaction de cet article, la liste est la suivante :
alan@localhost:~$ phpbrew known Read local release list (last update: 2018-09-06 12:21:03 UTC). You can run `phpbrew update` or `phpbrew known --update` to get a newer release list. 7.2: 7.2.9, 7.2.8, 7.2.7, 7.2.6, 7.2.5, 7.2.4, 7.2.3, 7.2.2 ... 7.1: 7.1.21, 7.1.20, 7.1.19, 7.1.18, 7.1.17, 7.1.16, 7.1.15, 7.1.14 ... 7.0: 7.0.31, 7.0.30, 7.0.29, 7.0.28, 7.0.27, 7.0.26, 7.0.25, 7.0.24 ... 5.6: 5.6.37, 5.6.36, 5.6.35, 5.6.34, 5.6.33, 5.6.32, 5.6.31, 5.6.30 ... 5.5: 5.5.38, 5.5.37, 5.5.36, 5.5.35, 5.5.34, 5.5.33, 5.5.32, 5.5.31 ... 5.4: 5.4.45, 5.4.44, 5.4.43, 5.4.42, 5.4.41, 5.4.40, 5.4.39, 5.4.38 ...
Installons la dernière version de PHP 7.2 pour un projet à démarrer aujourd’hui.
phpbrew install 7.2.9 +default
L’instruction +default indique à phpbrew de charger les versions de PHP accompagnées des extensions les plus communément utilisées. Il est possible de customiser ce choix d’extensions en se référant à la documentation officielle : https://github.com/phpbrew/phpbrew.
Si le téléchargement est relativement rapide, la compilation de PHP et de ses différentes extensions par phpbrew est en revanche très longue. Vous avez largement le temps d’aller vous faire chauffer un café. Sur mon Intel Core i5 à 2.5GHZ, la compilation a pris 20 minutes.
Pour activer l’utilisation de cette version, utilisez la commande suivante :
phpbrew use php-7.2.9
Vérifions maintenant que le système utilise bien la bonne version de PHP :
alan@localhost:~$ php -v PHP 7.2.9 (cli) (built: Sep 6 2018 15:29:26) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Bingo ! Merci phpbrew 🙂
Changer de version de PHP
Admettons maintenant que nous avons besoin de downgrader vers PHP 7.0.31 pour travailler sur un projet plus ancien.
sudo apt-get install openssl=1.0.2*/ sudo apt-get install libssl-dev=1.0.2*/
phpbrew install 7.0.31 +default
C’est reparti pour 20 minutes de compilation…
Une fois l’installation d’une nouvelle version de PHP terminée, vous pouvez lister les versions installées via
phpbrew list
Vous devriez obtenir un résultat comparable à
alan@localhost:~$ phpbrew list * (system) php-7.2.9 php-7.0.31
Et la commande phpbrew use vous permet maintenant de passer d’une version à l’autre en toute simplicité.
Retrouvez plus d’information et la documentation officielle de phpbrew sur https://github.com/phpbrew/phpbrew
Commentaires récents