PHPVM : changer de version PHP sans mot de passe
https://github.com/rijverse/phpvm
https://rijverse.github.io/phpvm/
📌 PHPVM est un gestionnaire de versions PHP pour Linux qui permet de changer de version dans un terminal sans privilèges administrateur. Chaque terminal peut utiliser sa propre version de PHP, indépendamment des autres. Le projet s’adresse à ceux qui jonglent entre plusieurs projets nécessitant des versions différentes — un ancien site sur PHP 8.1 et une application récente sur 8.3, par exemple.
Le fonctionnement repose sur trois couches qui se superposent. La première est globale : elle change la version par défaut du système pour tous les usages. La deuxième est par projet : un fichier .php-version déposé dans un dossier indique quelle version utiliser, et le changement se fait automatiquement quand on entre dans ce dossier. La troisième est par terminal : on peut verrouiller une version pour une seule fenêtre, sans que les autres soient affectées. C’est cette couche qui rend le quotidien fluide — deux projets ouverts côte à côte tournent chacun sur leur version.
- 🔄 Basculement par terminal sans mot de passe
- 📂 Version automatique selon le dossier du projet
- 🖥️ Interface en terminal avec navigation au clavier
- 🪟 Fenêtre graphique et icône dans la barre système
- 📦 Installation des versions PHP depuis les dépôts officiels
- 🔗 Compatible bash, zsh et fish
L’interface en terminal offre un sélecteur visuel où on se déplace avec les flèches et on valide avec Entrée. Une interface graphique complète existe aussi, avec des indicateurs pour chaque version : quels modes sont disponibles, si le débogueur est chargé, si le service de pages est actif, et si la version est en fin de vie. Une icône dans la barre système affiche la version active d’un coup d’œil.
L’installation de nouvelles versions se fait depuis l’outil lui-même, qui se charge d’ajouter les dépôts et d’installer les paquets nécessaires. L’ensemble fonctionne sur Ubuntu, Debian et leurs dérivés. L’approche repose sur les mécanismes natifs du système — les liens symboliques gérés par update-alternatives — sans rien inventer de fragile. Le projet s’inscrit dans une logique d’adaptation au système existant plutôt que de remplacement. Les conventions Linux sont respectées, et l’outil se contente d’automatiser ce qu’on ferait manuellement, en ajoutant la dimension par terminal et par projet que le système ne gère pas seul.
Sources
