Plusieurs versions de PHP sur EasyPHP

4 02 2012

Quand on fait du développement web en local avec MAMP, EasyPHP ou encore WAMP, ça peut être pratique de disposer des plusieurs versions de PHP (4, 5.2 et 5.3 notamment).

EasyPHP ne permet pas de switcher entre différentes versions de PHP. Voici donc un petit tuto pour utiliser différentes versions de PHP en parallèle…

Avant tout, il faut savoir qu’il existe 2 façons “d’intégrer” PHP à Apache :

  • Module : PHP est chargé en tant que module Apache (comme le mod_rewrite par exemple).
    Le lien entre Apache et PHP se fait par un «handler». Sous Windows, ce handler est une DLL, et sur Unix c’est un fichier .so.
  • CGI (Common Gateway Interface) : il s’agit d’une interface permettant à Apache de déléguer la réponse à une requête HTTP à un programme, qui peut être un script PERL, un script Python, Ruby ou encore… PHP !
    Apache va en fait exécuter le programme PHP (ex: php.exe sous Windows) en lui passant tout un tas de paramètres relatifs à la requête HTTP.

Dans ce tutoriel, je vais vous présenter les 2 méthodes, qui vous allez le voir présentent chacune des avantages et des inconvénients.

Télécharger & installer PHP

Tout d’abord, allez chercher la version de PHP que vous voulez ajouter à EasyPHP sur le site officiel : http://fr.php.net/releases/.

Pour l’exemple, je prends la dernière version de PHP 4 (php-4.4.9-Win32.zip).

Dézippez l’archive à la racine du dossier d’installation d’EasyPHP : D:\EasyPHP5.2.10. Renommez le dossier avec un nom court, chez moi ça sera php4. Le répertoire D:\EasyPHP5.2.10\php4 contient maintenant PHP 4.

Reste à le connecter à Apache, c’est parti :

Méthode #1 : Module

C’est la méthode utilisée par défaut par EasyPHP pour relier Apache et PHP.

Pour cela vous avez besoin de la DLL (le handler) adaptée à votre version de PHP ET votre version d’Apache.

Normalement, PHP est fourni avec une collection de DLL pour plusieurs versions d’Apache. Ces DLL se trouvent dans le dossier sapi : D:\EasyPHP5.2.10\php4\sapi.

Ces DLL sont toujours nommées de la même manière : {version php}{version apache}.dll. Par exemple, le handler php4apache2.dll permet d’utiliser php4 avec apache2.0.

Seulement voilà, ma version d’EasyPHP utilise Apache 2.2, et la dll php4apache2_2.dll n’est pas dans le dossier sapi.
Mais c’est pas grave, on peut la trouver grâce à l’ami Google : http://www.truefusion.trap17.com/downloads/php4apache2_2.zip.

Il suffit donc de copier la bonne dll à la racine de votre dossier php : D:\EasyPHP5.2.10\php4\php4apache2_2.dll pour ma part.

Maintenant que vous avez copié le handler adapté, le plus dur est fait. Il ne reste plus qu’à éditer le fichier de configuration d’Apache (httpd.conf) pour lui dire de charger PHP 4 à la place de PHP 5 :

Commentez le module actuel pour le désactiver :

# LoadModule php5_module "${path}/php/php5apache2_2.dll"
# PHPIniDir "${path}/apache"

Et ajoutez cette ligne juste en dessous pour charger votre module :

LoadModule php4_module "${path}/php4/php4apache2_2.dll"

Voilà, maintenant ça fonctionne, vous pouvez vérifier le changement de version de PHP avec la fonction phpinfo(). Si vous avez une erreur, c’est probablement que vous n’avez pas choisi la bonne DLL.

Pour revenir à la version d’avant, modifiez httpd.conf pour charger l’ancien module.

L’avantage est que cette solution est simple à mettre en œuvre, et propre.
L’inconvénient, c’est que vous ne pouvez charger qu’un seul module PHP sur un serveur Apache. Pour switcher entre différentes versions de PHP il faut donc arrêter le serveur, modifier sa configuration (httpd.conf) et le relancer.

Méthode #2 : CGI

Seconde méthode maintenant : le script CGI.

Dans ce cas, pas besoin de DLL. Il faut juste définir certains paramètres dans le (ou les) virtualhost dans lequel vous souhaitez utiliser une version spécifique de PHP.

Il faut aussi ajouter la permission au programme php.exe, et définir un ScriptAlias (pour que ça soit plus pratique à écrire) :

ScriptAlias /php4/ "${path}/php4/"

# [...]

<Directory "${path}/php4/">
    <Files "php.exe">
        Allow from all
    </Files>
</Directory>

# [...]

<VirtualHost *:80>
    DocumentRoot "${path}/www"
    ServerName localhost

    AddHandler php4-script .php .html .htm
    Action     php4-script /php4/php.exe
</VirtualHost>

L’avantage de cette seconde méthode est que vous pouvez avoir autant de versions de PHP que vous voulez (même si la configuration est plus complexe), il suffit de créer un Virtualhost à chaque fois.
Pour cela, vous pouvez jouer sur le port par exemple :

  • localhost:80 : php 5.2
  • localhost:804 : php 4
  • localhost:8053 : php 5.3

Par contre je ne sais pas s’il y a des inconvénients au niveau performance, peut-être que CGI est plus lent…

Mais de toute façon ça n’est pas important puisqu’il s’agit d’un serveur de développement, pas d’un serveur de production.


Partager :

Ces icônes sont des liens vers des sites de partage de signet sociaux où les lecteurs peuvent partager et découvrir de nouveaux liens.
  • Digg
  • del.icio.us
  • Facebook
  • Digg -fr
  • Live
  • MisterWong Fr
  • Scoopeo
  • StumbleUpon
  • Technorati
  • Wikio FR

Actions

Informations

Et maintenant je fais quoi ?

Aucun commentaire

12 réponses à “Plusieurs versions de PHP sur EasyPHP”

1 03 2017
wedding reception (22:56:54) :

I have been exploring for a bit for any high quality articles or weblog posts in this sort of house .
Exploring in Yahoo I at last stumbled upon this site.

Reading this information So i am happy to show that I’ve an incredibly just right uncanny feeling I found out just what
I needed. I so much for sure will make sure to don’t disregard this
site and give it a look on a constant basis.

24 04 2017
bamboo knitting needles (08:47:28) :

I savour, cause I found exactly what I used to be taking a look for.
You have ended my four day lengthy hunt! God Bless you
man. Have a great day. Bye

25 05 2017
miracle system (17:32:53) :

Thesе are truly fantastic ideaѕ in on thhe toⲣic of blogɡing.
Yoou have touched some pleasant factors here. Any way kep up wrinting.

Here iѕ my weeb pаge: miracle system

29 05 2017
logo designer (11:58:01) :

There’s definately a great deal to know about this topic.
I really like all of the points you have made.

16 09 2017
news o'malley (03:25:31) :

On how he thinks his valuables were stolen since in deed he
the top return your dream, Constance stated it was probable that folks
from the gang that didn’t take part in your struggle could
possibly have sneaked in the room as the battle happening and made away along with his belongings.
Try to research before leaving your place on the lifestyle
in the location. Just finished watching Dabangg,
Abhinav Kashyap’s sterling debut performance.

16 09 2017
1 news telugu (03:30:38) :

” Not being a philosopher or perhaps a physicist, I’m not going to learn about that subject in print, but I can tell you that, from the marketing standpoint, the world wide web marketing effect for the business stated previously would be a big fat zero. In breaking news from The Age, it can be reported how the carbon tax will hit each and every Australian which has a hefty price tag of $40,000 by 2050 coming to a massive $1 trillion hit to the Australian economy. News keeps us touching political affairs not simply of our country but also of most on the world.

16 09 2017
newsoftserial.h (03:35:18) :

The Nokia X3 Red Mobile includes a MP3, MP4, e-AAC+, WMA video and audio files can be playable for the
cell. When similar situations arise all cars in front with the leader
may pass the pace car and tag onto the rear from the pack.
Politicians are those who make trouble and after that campaign against them.

16 09 2017
m World news amreli (03:41:23) :

It is heartbreaking for the sports lover to travel out of town at the time of airing from the match of the favorite
team. “We are closely watching those things of the sedition movement and many individuals who were preparing to disrupt the 11 February rallies were arrested,” he said.
However, he formed the habit of stopping “just for a drink or two” with friends after
work.

30 09 2017
h bloger (06:58:35) :

Upcoming New Releases: Going with exactly the same concept above, when you
have an associate in radio or are only really ahead of the curve musically, you might develop a
site that lists and describes the upcoming new album releases.
The readers of the blog are obviously interested
in the general field of know-how in the blog. In affiliate marketing, website visitors
to some website is driven from another website or from email.

1 10 2017
sales pitches (14:51:24) :

Newsbloggers, for one, are filling out where traditional news print media are neglecting.
Become A Valued Blog Commenter: Share your personality, knowledge,
and enthusiasm with blogs. Little Known Ways To (blank)AAn intriguing headline that teaches you are sharing insider
information along with your reader.

3 10 2017
sex toys for women (09:42:41) :

Ηeya i’m for the pгimary tume here. I found this board and I to finhd
It really useful & it helpеd me out much. I’m hoping to present one thing again and һelp others sucxh
as you aided me.

10 10 2017
This is not for you (23:52:53) :

Veгy interesting poiunts you have observed, thank you for posting.

Laisser un commentaire

Vous pouvez utiliser ces balises html : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>