Dans le cadre de mon stage, je bosse sur un site codé pour PHP 5.3, et j'ai donc eu à installer PHP5.3 sur ma bécane.
Cette version de PHP n'étant pas encore dans les dépôts, et les paquets disponibles ayant des problèmes de dépendances non résolues, le plus simple c'est de compiler. Le problème c'est qu'on perd la souplesse de la gestion modulaire de PHP.
Ce que j'ai donc fait, c'est installer PHP5.3 en tant que binaire CGI, sans toucher à ma version de PHP 5.2 installée en tant que module apache.
Warning : Je mets cette méthode à titre expérimental, pour faire du
dev et du test. Ne vous amusez pas à mettre ça sur un serveur de prod sans plus d'infos. Il y a pas mal de différences avec le fonctionnement sous forme de module.Voilà la marche à suivre :
Récupérer la source (pour les frenchies)
wget http://us.php.net/get/php-5.3.2.tar.gz/from/fr.php.net/mirror
tar -zxf php-5.3.2 && cd php-5.32
Ensuite on passe à la compilation
./configure --enable-cgi
C'est la seule option dont vous avez absolument besoin.
Regardez un peu les autres options disponibles (support des différents SGBD, de curl de gd, il y a fort à parier que ça vous soit utile)
Une fois que c'est bon
make clean
make (si vous avez un multi-cœurs, oubliez pas le flag -j (-j3 pour un dual core, -j9 pour un octo core))
Et au lieu de faire un bête make install, on passe par checkinstall qui fait les choses plus proprement (il commence par compiler en paquet, puis installe le paquet)
sudo checkinstall --fstrans=no
Une fois que c'est bon, il suffit de dire à apache de passer par PHP en tant que binaire CGI.
On a besoin du module "actions" d'apache
sudo a2enmod actions
Et il faut ajouter ceci dans les VirtualHosts qui auront besoin de faire tourner PHP 5.3
ScriptAlias /local-bin /usr/local/bin
AddHandler application/x-httpd-php5 php
Action application/x-httpd-php5 /local-bin/php-cgi
<Directory "/usr/local/bin">
Order allow,deny
Allow from all
</Directory>
Je ne suis pas très familier des CGI sous apache, donc il y a sûrement des trucs à améliorer, n'hésitez pas à proposer des améliorations