Phpbrew : installer plusieurs versions de PHP en parallèle

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

J’ai eu il y a quelques temps à installer php7 sur une Debian 7, mais pas en remplacement de php 5.4 (sinon j’aurais fait appel à dotdeb), mais à côté. Si CentOS bénéficie des Software Collections de la grande sœur Redhat, ce n’est pas le cas sur notre distribution préférée et pratiquement toutes les solutions proposent un passage par la compilation à la main. Mais ça c’était avant.

Bon il est vrai que Phpbrew passe quand même par de la compilation, mais il vous mâche grandement le travail. C’est un programme diablement pratique pour vous permettre de gérer installation, compilation, ajout d’extensions, tout ça avec des commandes simplifiées avec en prime la gestion du FPM.

Je ne vais pas détailler les raisons qui m’ont forcé à chercher à installer ça sur Debian 7, il me faudrait une vie tellement le client en question nous l’a malmène. Mais bref, en cherchant des solutions j’ai dégoté le sésame que j’ai installé dans /usr/local/bin. Pour info, si pour l’installation dans ce dossier il vous faut être administrateur, ça ne sera pas obligatoire pour la compilation/gestion, elle peut être faite via un utilisateur standard.

La doc parle d’elle-même (bien penser à installer les prérequis, vous gagnerez beaucoup temps), si dans l’ensemble c’est fonctionnel il y a tout de même peu de ressources sur le sujet dès qu’on sort des clous. Il faut parfois bien fouiller les issues pour avoir des réponses, une bonne maîtrise de l’anglais est plus que nécessaire.

Il faut aussi être à l’aise avec la compilation. Pour résoudre les erreurs qui pourraient apparaître , c’est très souvent dû à un manque de paquets dével, et je m’y suis facilement repris à 10 fois la première installation. En gros, ça s’arrête au premier paquet manquant et fort heureusement pour moi les dépôts sont encore debout.

Toute la configuration et la compilation des versions installées sont effectuées dans un dossier .phpbrew dans le dossier home de l’utilisateur qui a effectué les compilations. Et chaque version a sa propre arborescence et donc ses fichiers de configuration. Dans mon cas avec FPM d’activé, un simple phpbrew fpm restart permet de prendre la nouvelle configuration à jour. C’est donc bien organisé, et ça me plaît. Pour la gestion du démarrage automatique, j’ai privilégié un passage par cron, à l’image de ce qui se fait souvent dans le monde node.js.

Concernant l’ajout d’extensions après coup, phpbrew supporte l’utilisation de dépôts Github en plus du repository PECL. Nécessaire pour PHP7 et Memcached notamment, il y a même un message spécifique pour celui-ci. Par contre pour PECL, j’ai eu un pépin, il semble qu’il y aie eu des modifications récemment et ça plante facilement. Exemple, pour une raison que j’ignore l’extension GD n’était pas compilée avec le support du format JPEG, alors que les paquets « devel » sont bien présents. En reforçant une installation avec les bons paramètres il a voulu télécharger la source sur PECL, mais ça tombait en erreur. S’agissant d’un module core inutile de télécharger quoi que ce soit on a déjà les sources de php et donc du module. C’est là que la bonne connaissance de la compilation est nécessaire pour forcer make à utiliser le dossier local des sources :

Bien que je sois quelqu’un de globalement réticent à la compilation manuelle, je suis satisfait de cette solution et je souhaitais en parler en français parce que je n’ai rien trouvé de pertinent sur le sujet pour autre chose que les accrocs à la pomme sur des installations de dev donc. Si d’aventure vous avez besoin d’une telle solution, eh bien sachez qu’elle existe et qu’elle est fiable.

1 Commentaire
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
cryptohow
25/08/2017 12:03

Super, j’avais justement besoin de ce type de logiciel !