lundi 20 avril 2009

APACHE : PHP4 et PHP5 sur le même serveur

Sur Debian Lenny, cela necessite un serieux bricolage. Il faut vraiment savoir ce que l'on fait.

Il faut commencer par ajouter etch au /etc/apt/sources.list en inserant la ligne suivante:
deb http://ftp.fr.debian.org/debian etch main

Puis on installe php4 en tant que module
apt-get install php4

et PHP5 en tant que CGI.
apt-get install php5-cgi

Surtout, sous aucun prétexte, ne pas installer le paquet php5.

Il faut activer le module actions puis redemarrer.
a2enmod actions
/etc/init.d/apache2 restart

A ce moment, un appel en php à la fonction phpinfo() devrait vous retourner la version de php4 installée.

Nous allons utiliser un fichier .htaccess pour passer du php4 à php5 dans le dossier voulu.

Inserer dans le .htaccess les lignes suivantes
AddHandler x-httpd-php5 .php
Action x-httpd-php5 /cgi-bin/php

Puis re-afficher phpinfo(). Normalement vous êtes désormais en PHP5. Vous pouvez switcher comme vous voulez entre php4/php5 grace à ce .htaccess en ajoutant ou commentant ces 2 lignes ci-dessus.

Nous pouvons désormais installer les extensions.

Installer l'extension GD
apt-get install php4-gd php5-gd

Installer le support de mysql pour PHP5
apt-get install php5-mysql

Si vous installez directement php4-mysql, lipaprutil1 risque d'entrer en conflit avec php4-mysql et vouloir supprimer un tas de paquets Apache. Il ne faut surtout pas! Nous allons donc retrograder vers une ancienne version Etch de libaprutils1 :
apt-get install "libpaprutil1=1.2.7+dfsg-2"

Puis installer php4-mysql. Normalement il n'y a plus de problemes.
apt-get install php4-mysql

Un rapide coup d'oeil à php -v peut vous indiquer que php4 connait quelques soucis avec les types magic-mime.

Si il y a des erreurs lors du php -v et dans les logs Apache , editer /usr/share/file/magic.mime et commenter les lignes suivantes:
#0 regex BEGIN[[:space:]]*[{] application/x-awk ##
#0 search/400 \\input text/x-tex
#0 search/400 \\section text/x-tex
#0 search/400 \\setlength text/x-tex
#0 search/400 \\documentstyle text/x-tex
#0 search/400 \\chapter text/x-tex
#0 search/400 \\documentclass text/x-tex

ainsi que la ligne contenant x-inform qui peut poser probleme également.

Redemarrez apache, verifiez les logs. Tout fonctionne.

Pour aller plus loin sur le sujet:
http://www.siteduzero.com/tutoriel-3-34539-php4-et-php5-en-meme-temps-sur-un-serveur-linux.html
http://packages.debian.org/etch/libaprutil1
https://forum.debian-fr.org/viewtopic.php?f=3&t=17168
http://forum.ovh.com/showthread.php?t=36949

1 commentaire:

  1. Bonjour,


    merci de corriger une faute de syntaxe à la ligne

    apt-get install libpaprutil1=1.2.7+dfsg-2

    et remplacer par

    apt-get install "libaprutil1=1.2.7+dfsg-2"

    RépondreSupprimer