Différentes versions de PHP pour Debian

closeCet article a été publié il y a 4 ans 9 mois 11 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Un des gros, gros avantages que j’ai découvert en utilisant CentOS chez LinkByNet, c’est le système très avantageux de Software Collections, notamment utilisé par Rémi Collet pour nous gratifier de dépôts extrêmement complets des différentes versions de PHP en circulation (voyez ça comme des PPA sous Ubuntu). Et je pestais à l’époque de ne pas avoir un système similaire sous Debian, jusqu’à récemment.

En effet, toutes les recherches que je faisais aboutissaient presque invariablement à une compilation manuelle à la fois compliquée à maintenir et très consommatrice en temps. Et je déteste les compilations manuelles. J’avais malgré tout fini par tenter d’utiliser phpbrew pour un client à la plateforme vieillissante et trop rigide pour permettre une mise à jour sereine.

Avec la sortie prochaine de CentOS 8, je vais pouvoir tester le remplaçant des SCL, à savoir les Streams, qui promettent un fonctionnement similaire, limite plus intégré, mais je n’ai pas encore creusé le sujet au-delà des annonces presse. Et je me suis une fois de plus tourné vers Debian pour savoir si la situation a évolué.

Il s’avère que cette fois, je suis tombé sur des résultats qui me plaisent beaucoup plus, à savoir qu’un développeur Debian du nom d’Ondřej Surý, qui s’occupe justement des paquets PHP qui sont inclus dans Debian, maintient un dépôt perso pour Debian et Ubuntu contenant les versions récentes de PHP, et qu’il est possible de les installer en parallèle. Oui, l’équivalent donc des dépôts de Rémi pour l’univers Redhat 🙂

Et on est sur le même niveau de sérieux finalement, bien que Rémi soit directement contributeur PHP, ce que ne semble pas être Ondřej, mais je ne comptes pas lui en tenir rigueur étant donné la générosité. Générosité récompensée par certains qui le soutiennent sur Patreon, à hauteur en moyenne de 5 dollars par personne par mois, pas dégueulasse pour un sacré boulot.

Les détails pour l’installation sont disponibles sur ce site (attention, design ultra-minimaliste). À savoir que Jessie, Strech, et la prochaine Buster (qui doit arriver bientôt si ce n’est pas déjà fait à la sortie de ce billet) sont supportées, pour les architectures x86 (32 et 64bit), et ARM (32 et 64bit également), les paquets sources sont évidemment proposés. Et grâce à ce dépôt, on peut installer de PHP 5.6 à 7.3 (même si cette dernière est déjà incluse dans Buster), tout en parallèle, ce qui est bien plus pratique pour gérer des projets historiques au code pas forcément adapté aux versions plus récentes (et je peux vous dire en tant qu’infogéreur que ça arrive très, très souvent, trop souvent pourrait-on dire).

Le seul manque finalement par rapport aux SCL est l’absence de « switch » au runtime. Je m’explique, quand vous avez plusieurs versions de PHP en parallèle, soit vous avez à disposition des alias comme le propose Rémi (php72, php73, etc) pour exécuter PHP en ligne de commande, soit vous allez à chaque fois chercher le chemin du binaire à lancer. Lourd, pas pratique, et des outils comme composer et frameworks comme symfony sont des champions de la feignantise en ne cherchant qu’une unique commande « php », qui parfois n’existe même pas par elles-mêmes si l’on a que des sources SCL pour PHP. Il existe donc une commande pour « créer » cet alias php à la volée :

De cette manière, tous les outils de développeurs feignants savent fonctionner dans la version attendue (pratique aussi quand on enchaîne les commandes PHP dans un fichier Makefile).

Donc là sous Debian il faudra encore « bidouiller » un peu pour arriver au même résultat, mais déjà s’affranchir de la compilation manuelle et la possibilité d’avoir plusieurs versions en parallèle facilement est un gros plus. Encore merci Ondřej 🙂

2 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
Matth
Matth
15/07/2019 20:48

Je confirme Buster est sortie entre temps, je suis occupé à préparer mon template de VM debian10 sous Proxmox 🙂

Sinon en effet le boulot de cette personne est fantastique, je m’en suis déjà servi de nombreuses fois même si je ne l’ai découvert qu’il y a quelques mois !

Thomas
03/09/2019 18:57

Bonjour, alors petite information complémentaire concernant php7.3 sur debian 10 (buster) avec les dépôts deb.sury.org, il faut faire attention à ce que tous les paquets php soient téléchargés depuis le même dépôt, car un mélange entre les dépôts officiels et tiers peut créer un paquet d’erreurs. Par contre concernant l’utilisation de php en ligne de commande, il suffit d’utiliser les commandes php7.2 ou php7.3, il n’y a pas besoin d’aller chercher les binaires dans /usr/bin. Et il reste possible de définir globalement la version associée à /usr/bin/php avec la commande : # pour php7.2 sudo update-alternatives –install /usr/bin/php php /usr/bin/php7.2… Lire la suite »