• Installer PHP 5.3 en gardant PHP 5.2 sous Ubuntu

    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
    « La veille du départMPD + Quelques tweaks sous Ubuntu »

    Tags Tags : , ,