Utiliser plusieurs versions de PHP et switcher facilement d'une version à l'autre sous Ubuntu
mars 30, 2010 · franek
EDIT du 09/04/2010 : En fait, cette technique est obsolète. Je viens de découvrir PHPFarm qui semble faire plus ou moins ce que je souhaite faire. A tester donc.
--
Sur mon environnement de développement, je souhaite pouvoir switcher facilement d’une version de PHP à l’autre. Mes pré-requis sont de disposer de versions compilées de PHP (avec les extensions APC et Xdebug) ainsi que d’une version de PHP packagée avec Zend Server.
Je souhaite conserver la même version d’Apache. Sous windows, j’aurai avantageusement pu utiliser Wampserver, EasyPHP, … Sous Linux, à ma connaissance, il n’existe pas de mécanisme de ce type.
J’ai donc développé un petit script Bash qui permet d’installer rapidement l’ensemble des versions PHP nécessaires avec les mêmes options de compilation.
J’utilise une version de Ubuntu mais cela devrait fonctionner avec une autre distribution.
A l’issue de l’installation, je pourrais switcher d’une version de PHP en une seule commande. Le PHP installé contiendra les mêmes extensions.
Le script va installer les différentes versions de PHP en utilisant la ligne de compilation suivante (qui correspond à mes besoins - support Oracle, mysql, gettext - , il est bien entendu possible de l’adapter à votre besoin) :
Installer les paquets manquants afin de pouvoir compiler PHP (si vous souhaitez d’autres modules PHP, vous devrez ajouter d’autres paquets) :
Créer un fichier compil-php.sh contenant :
Editer le script avec les versions de PHP que vous souhaitez installer. La variable à modifier est versioninstall. Chaque version doit être séparée par un espace. Le nom de la version doit respecter la syntaxe php-X.Y.Z.
Exécuter ce script.
./compil-php.sh
Par défaut, ce script va vous afficher les commandes disponibles. Vous avez 3 options :
install : va installer les versions de PHP dans /usr/local/php-X.Y.Z
list : afficher la liste des versions de PHP configurées dans le script
switch : lorsque les versions de PHP ont été installées, permet de switcher d’une version de PHP à l’autre.
Par défaut, ce script va compiler les PHP dans le répertoire /opt/compil-php. Cette variable peut être modifiée dans le script.
Les binaires seront installés dans /usr/local/php-X.Y.Z. Le fichier de configuration php.ini se trouvera dans /usr/local/php-X.Y.Z/etc/php.ini (il est donc possible d’avoir un fichier php.ini par installation de PHP).
C’est un script brut. Des modifications pourraient être apportéees :