• 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 : , ,
  • Commentaires

    1
    Mardi 20 Avril 2010 à 00:20
    Intéressant
    3
    Mercredi 28 Avril 2010 à 21:42
    Juste un détail, faut bien penser à vérifier la conf PHP après l'installation. (Il faut faire un autre php.ini, si on veut pas se retrouver avec magic_quotes_gpc à on, ou allow_short_tags à on, ainsi que d'autres joyeusetés du même acabit)
    4
    aspro
    Mardi 26 Octobre 2010 à 12:58

    Interessant, justement cela fait une semaine que je cherche à faire cela.


    Par contre comment fais tu pour le second php.ini


    où le configure tu ?


     


    merci

    5
    Mardi 26 Octobre 2010 à 17:22

    Dans /etc/php5 il y a (entre autres) les dossiers apache2, cli et cgi

    Un php.ini par dossier.

    Si tu veux voir quels fichiers sont parsés, un petit coup de phpinfo() te mettra sur la voie.

    Suivre le flux RSS des commentaires de cet article


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :