Versioning : PHP3 et PHP4 en module d'Apache
Par Armel FAUVEAU, vendredi 2 février 2001 à 20:12 :: Lu sur le Web :: #660 :: rss
Lors des phases de beta test de PHP4, une méthode permettant de faire cohabiter PHP3 et PHP4 sur le même serveur, consistait à déployer l'un en module et l'autre en cgi.
Mais depuis PHP3.0.13 et PHP4.0 beta 3, il est possible de faire tourner les deux branches de PHP en module.
Pré-requis
Je concidère que vous diposez d'une version Apache compilée avec le module so (mod_so enabled). Afin de le vérifier, vous pouvez faire :
$ httpd -l Compiled-in modules: http_core.c mod_env.c mod_log_config.c mod_mime.c mod_negotiation.c mod_status.c mod_include.c mod_autoindex.c mod_dir.c mod_cgi.c mod_asis.c mod_imap.c mod_actions.c mod_userdir.c mod_alias.c mod_access.c mod_auth.c mod_so.c mod_setenvif.cCette commande retourne un certain nombre d'informations relatives aux modules embarqués par Apache. Vérifiez que mod_so.c figure dans la liste. Sinon, vous devez recompiler Apache (voir la doc).
Je concidère également que vous disposez des sources de PHP3 (supérieur ou égale à 3.0.13) et des sources de PHP4 (supérieur ou égale à 4.0 beta 3).
Enfin, que vous disposez d'un OS suffisament récent :
- Linux avec une version récente de binutils (binutils 2.9.1.0.25 ou plus)
- Solaris 2.5 ou plus
- FreeBSD (3.2, 4.0 ou plus)
- ...
Compilation de PHP3
Sans être root (inutile), placez vous dans le repertoire comportant les sources de PHP3, puis faites,
$ cd ~/php-3.0.18 $ make distclean $ ./configure '--with-apxs=/usr/local/apache/bin/apxs' '--with-mysql' '--enable-versioning' '--enable-track-vars' $ makeLa commande make distclean permet de purger vos sources et de faire disparaitre toutes traces d'une ancienne compilation. Cette étape est fortement recommandée.
Notez l'option de compilation '--enable-versioning'. Libre à vous d'indiquer d'autres options (genre '--with-ftp' '--with-gd' , etc.).
Enfin, la commande make va lancer la compilation.
Si tout c'est bien passé, il vous reste à passer root et faire,
$ make installPHP3 est installé.
Compilation de PHP4
Idem. Sans être root (inutile), placez vous dans le repertoire comportant les sources de PHP4, puis faites,
$ cd ~/php-4.0.4pl1 $ make distclean $ ./configure '--with-apxs=/usr/local/apache/bin/apxs' '--with-mysql' '--enable-versioning' '--enable-track-vars' $ makeSi tout c'est bien passé, il vous reste à passer root et faire,
$ make installPHP4 est installé.
Paramétrage d'Apache
Editez le fichier httpd.conf d'Apache. Et vérifiez les points suivants,
# Chargement des modules de PHP3 et PHP4 LoadModule php3_module libexec/libphp3.so LoadModule php4_module libexec/libphp4.so # AddType PHP3 AddType application/x-httpd-php3 .php3 AddType application/x-httpd-php3-source .phps #AddType PHP 4 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phpsEt éventuellement, afin de parser dans l'ordre que vous voulez les fichiers index.php3 et index.php
# DirectoryIndex <IfModule mod_dir.c> DirectoryIndex index.html index.php3 index.php </IfModule>Il vous reste alors à relancer Apache.
$apachectl stop $apachectl startTester l'ensemble
Afin de tester si tout fonctionne bien, le plus simple est de faire 2 fichiers faisant un simple phpinfo(). Le premier portant l'extension .php3 et le second l'extension .php.







Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.