apache, php4 et php5

Posté le mercredi 21 mars 2007 à 7 h 41, Read it in english with Google

Installer apache2 se relĂšve relativement simple mĂȘme si personnellement je n’aime pas trop le systĂšme d’administration (module available, fichiers de site etc..). Je prĂ©fĂšre avoir tout Ă  un endroit plutĂŽt que de devoir aller chercher le php.ini au fin fond de mon systĂšme et de revenir dans le httpd.conf etc…

En mĂȘme temps j »aurais pu installer une solution toute faite comme XAMP mais au fond j’aime bien que les choses deviennent compliquĂ©es, ça me fait du bien de les dresser 😀 Me voila donc avec tout mes paquets apache2 et php5 installĂ© et la je me dit il me faut php4 quand mĂȘme. Il est vieux, soit, mais encore trop rĂ©pandu pour ĂȘtre laissĂ© Ă  l’abandon.

Plusieurs solutions s’offrent Ă  moi :

  • j’installe apache et je le lance avec 2 instance sur un port diffĂ©rents et sur chacune un mod php diffĂ©rents,
  • je lance php4 ou php5 en mode cgi et l’autre comme module apache. Et suivant l’extension du fichier ou en ajoutant un htaccess, je rĂšglerais quelle version php je veux utiliser

Je choisi la deuxiĂšme solution pour des raisons de performance et de simplicitĂ©. Ben oui avoir deux instance d’Apache qui tourne moi ça m’inspire pas, et encore moins mon portable.


Je commence donc par installer php4-cgi : aptitude install php4-cgi

je vais utiliser le module Action qui permet de lancer des script (bash, C …etc) en fonction du script appelĂ© (ici php).
Mais je commence par Ă©diter mon apache2.conf gksu gedit /etc/apache2/apache2.conf

Je rajoute ses lignes quelque part : AddHandler php4-script .php4
Action php4-script /cgi-bin/php4
ça va permettre de définir les fichier *.php4 comme apartenant au type php4-script.
Et le module Action permet de lancer php4 lorsque se type de script est appelé.

Or si vous fouillez bien l’exĂ©cutable cgi de php4 ne se trouve pas dans /cgi-bin/ mais dans /usr/lib/cgi-bin/. Vous pouvez bien sur remplacez le chemin mais vous pourrez avoir des problĂšmes lors d’installations futurs. VĂ©rifier donc simplement que cette ligne est prĂ©sente quelque part : ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ Par default elle est inclus dans /etc/apache2/sites-available/Default qui est appelĂ© par le apache2.conf, mais je vous suggĂšre de la mettre directement dans ce dernier, sinon vous devrez la rajouter dans chaque fichier de site.

Enfin tout est prĂšs, oui c’Ă©tait long il ne reste plus qu’a faire un petit :a2enmod actions
pour activer le module Action qui ne l’est pas par defaut. Et puis on relance apache :/etc/init.d/apache2 force-reload

Maintenant tout vos script .php4 se lanceront avec l’Ă©xĂ©cutable cgi de php4 et il vous suffira de mettre : AddHandler php4-script .php
dans un .htaccess pour que les autres aussi se lance avec php4.

Note:
Si vous avez une erreur 500 Ă  cause du .htaccess s’est parce que vous n’avez pas les droits pour dĂ©finir AddHandler. Recherchez dans vos fichiers de site (/etc/apache2/sites-available/Default) :
AllowOverride None et remplacer par AllowOverride All
# ou au moin :
AllowOverride AuthConfig
Allez voir la doc pour plus de détail.

4 réponses à “apache, php4 et php5”

  1. Anthony

    Bonjour,

    merci pour ce tuto super…
    j’ai fait l’install sur une ubuntu server 8.10. Mes phpinfo sont bons : php5 par dĂ©faut et php4 via htaccess. Par contre, impossible d’afficher mes scripts sous Php4 = page blanche…
    Une idée ?
    merci beaucoup

  2. sissi

    Bonjour,

    j’ai le PHP5 mais j’ai besoin de PHP4,mais sous vista je sais pas quoi faire 🙁

    Merci pour votre aide

  3. James

    Bonjour,

    merci beaucoup pour ce tuto, je peux enfin faire tourner mes script php4 et php5 ensemble.

    j’ai juste un petit soucis, avec l’extension .php4, c’est bien interprĂ©tĂ© comme du php4, mais quand je mets un fichier htaccess contenant « AddHandler php4-script .php » Ă  la racine d’un virtual host, mes fichiers php passe tout de mĂȘme en php5…

    mais tout de mĂȘme, encore MERCI !!!

  4. Mathieu

    Bonjour,

    Merci pour le tuto cela fonctionne aussi chez moi.

    James j’ai le mĂȘme problĂšme que toi avec le htaccess. Comme si il y avait une directive aprĂšs le fichier htaccess qui stipulait une interprĂ©tation du language en php5…

    Je recherche toujours la solution.

Laissez un commentaire :