PHP 5.4 en "Software Collection"
+
Par Remi le mardi 20 novembre 2012, 07:36 - HowTo - Lien permanent
Les Software Collections sont une solution permettant d'installer plusieurs versions d'un logiciel sur un même système sans affecter les autres logiciels, en utilisant le gestionnaire de paquet RPM.
Vous trouverez plusieurs ensembles de logiciels empaquetés de cette manière sur le projet SoftwareCollections.
Je viens de créer un nouveau dépôt pour Enterprise Linux (RHEL, CentOS, ...) contenant mes travaux sur l'adaptation des RPM de PHP 5.4 à ce type d'installation.
Fichier de configuration : rhel-php54.repo (à enregister dans votre dossier /etc/yum.repos.d)
Dans ce dépôt, les paquets sont préfixés php54- et s'installent dans /opt/rh/php54/root
Installation de la command php :
# yum install php54-php-cli
La version standard est toujours présente et n'est pas affectée
$ php --version
PHP 5.3.3 (cli) (built: Oct 23 2012 07:25:18)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
Pour utiliser une commande de la collection, il y a plusieurs solutions
Utiliser le lanceur SCL :
$ scl enable php54 "php --version"
PHP 5.4.8 (cli) (built: Nov 19 2012 06:32:09)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
Utiliser le lanceur spécifique :
$ php54-php --version
PHP 5.4.8 (cli) (built: Nov 19 2012 06:32:09)
Activer la collection pour l'utisateur courant
$ source /opt/rh/php54/enable
$ php --version
PHP 5.4.8 (cli) (built: Nov 19 2012 06:32:09)
Dans le cas de PHP (pas forcément possible pour les autres collections), on peut aussi simplement utiliser les commandes installées directement :
# /opt/rh/php54/root/usr/bin/php --version
PHP 5.4.8 (cli) (built: Nov 19 2012 06:32:09)
Pour Apache, la collection fournit le mod_php construit pour l'apache standard du système.
yum install php54-php
Si le paquet php est déjà installé, ce second mod_php sera simplement ignoré. Si le paquet php n'est pas installé, apache utilisera le mod_php version 5.4 de manière transparente.
Si vous souhaitez installer un autre serveur web (nginx, lighttpd, ...) ou une autre version d'Apache, par exemple http 2.4 qui dispose aussi de sa collection, le mod_php ne sera pas utilisable (API/ABI différente), mais php-fpm sera utilisable.
# yum install php54-php-fpm
# service php54-php-fpm start
Voir le billet sur l'utilisation d'apache 2.4 et de php-fpm.
Pour MySQL, la collection fournit l'extension contruite avec le MySQL standard du système, mais vous pouvez aussi l'utiliser avec une autre version du serveur, par exemple MySQL 5.5 qui dispose aussi de sa collection, dans ce cas, il peut être préférable d'utiliser l'extension mysqlnd qui est indépendante des bibliothèques du client de MySQL.
Autres extensions :
La collection php54 contient aussi pear (php54-php-pear) et les extensions APC (php54-php-pecl-apc) et memcache (php54-php-pecl-memcache).
Conclusion :
J'espère que cette petite introduction aux "Software Collections" vous aura donné envie de les essayer. Vos retours sont, comme toujours, les bienvenus.
Commentaires
Hé beh... Comme d'hab, du super boulot !
Merci beaucoup Remi pour cette introduction et ce petit manuel qui vont me permettre d'essayer ça :-)
Chapeau (de la couleur qui te sied :p) bas l'ami !
Mise à jour de php en 5.4.10