Steve Frécinaux

PHP 4 et 5, histoire d’une cohabitation

Vous avez tous entendu parler de la nouvelle version de PHP (PHP 5). La version disponible en téléchargement est la Release Candidate 1, ce qui veut dire que la version finale est sur le point de sortir, et il peut donc être intéressant de l’installer dès à présent sur son serveur de test personnel, afin d’être prêt lors de son arrivée officielle sur les devants de la scène.

Cependant, la version 5 n’est pas encore utilisée chez les hébergeurs, et il est donc assez important de garder la version actuelle du moteur PHP opérationnelle, ne fut-ce que pour pouvoir continuer à entretenir un « ancien » site (donc, tout simplement, votre site actuel). Et bien, il est possible de faire cohabiter PHP 4 et PHP 5, et même très facilement !

Binaires

La procédure que je vais détailler ici est celle que j’ai appliquée chez moi. Mon serveur de test est actuellement un serveur de type Apache 2, sous Windows XP Home, et installé dans le répertoire C:\Program Files\Apache\Apache2 (il ne devrait qu’y avoir très peu de changements avec Apache 1.3). Les deux versions de PHP sont les versions 4.3.5 et 5.0.0rc1, installées respectivement dans C:\Program Files\Apache\php4 et C:\Program Files\Apache\php5.

La première partie de l’installation est la plus simple : il suffit de décompresser les archives “Windows Binaries” au format zip des deux interpréteurs dans les répertoires où ils doivent se trouver. Vient alors le premier ennui : les deux distributions, dans leur manuel d’installation, disent de créer un fichier php.ini (à partir des exemples donnés) et de le déplacer dans C:\windows, ce qui risque, vous vous en doutez, de créer quelques conflits. Contentez-vous de créer les fichiers, mais laissez-les dans le répertoire d’installation.

Nous allons installer les deux versions de façon différente, l’une en CGI et l’autre sous forme de module Apache. L’avantage de l’exécutable CGI sur le module est qu’il recherche d’abord le fichier de configuration dans son propre répertoire d’installation, avant de chercher dans le répertoire de Windows, ce qui n’est pas le cas du module. Ainsi il est aussi possible d’installer les deux versions en CGI, mais beaucoup plus difficilement en modules ! (mat me souffle à l’oreille que sous linux, on peut modifier le chemin vers le fichier de configuration via une directive de compilation.)

PHP 4.3.5

Commençons par le CGI de PHP 4.3.5. Le manuel d’installation indique qu’il faut ajouter ces lignes en fin de fichier de configuration ([...]\Apache2\conf\httpd.conf) :

AddType application/x-httpd-php .php
ScriptAlias /php4/ "C:/Program Files/Apache/php4/"
Action application/x-httpd-php "/php4/php.exe"

Pour notre part, nous allons ajouter quelques lignes un peu différentes :

AddType application/x-httpd-php4 .php
AddType application/x-httpd-php4 .php4
ScriptAlias /php4/ "C:/Program Files/Apache/php4/"
Action application/x-httpd-php4 "/php4/php.exe"

La différence se situe dans les deux premières lignes. Tout d’abord nous ajoutons l’extension .php4 qui nous permettra de « forcer » l’interprétation d’un script par PHP 4. C’est un détail optionnel. Ce qui l’est moins par contre, c’est la modification du type MIME, de application/x -httpd-php en application/x-httpd-php4. Ceci n’a pas d’incidence réelle sur le CGI car la ligne Action a été modifiée en conséquence, mais c’est important, car ça permettra de différencier les scripts destinés à PHP 4 de ceux destinés à PHP 5.

PHP 5.0.0rc1

Au tour du module PHP 5, il faut ajouter ceci en fin de fichier httpd.conf :

LoadModule php5_module "C:/Program Files/Apache/php5/php5apache2.dll"
AddType application/x-httpd-php .php5

Les utilisateurs de Apache 1.3 quant à eux doivent probablement (c’est du moins ce qui ressort de la documentation) insérer ces lignes :

LoadModule php5_module "C:/Program Files/Apache/php5/php5apache.dll"
AddModule mod_php5.c
AddType application/x-httpd-php .php5

Les fichiers destinés à PHP 5 devront donc porter l’extension .php5. Copiez également le fichier php.ini du répertoire php5 dans C:\windows. (En effet le module ne cherchera le fichier de configuration que là.)

Utilisation

Créez maintenant deux fichiers dans la racine de votre dossier web (chez moi, C:\www), nommés phpinfo.php4 et phpinfo.php5, et dont l’unique contenu est ceci :

<?php
phpinfo();
?>

Après avoir relancé votre serveur web, à condition d’avoir correctement configuré vos interpréteurs, aux adresses http://localhost/phpinfo.php4 et http://localhost/phpinfo.php5 devraient se trouver des pages ayant respectivement pour titres PHP Version 4.3.5 et PHP Version 5.0.0RC1

Un dernier détail, il est possible de modifier dans un répertoire l’interpréteur utilisé par les fichiers portant l’extension .php, par défaut PHP 4. Pour celà, il faut que vous ayez activé l’utilisation des fichiers .htaccess (voyez du côté de AllowOverride). Ajoutez cette ligne au fichier .htaccess du répertoire :

AddType application/x-httpd-php .php

Voilà, c’est terminé, j’espère que ceci aura pu vous aider :)