PHP5 et PHP6 sur le même serveur

Pour porter sur la même plate-forme les deux versions du langage de script serveur, il suffit d'installer l'une sous forme de module et l'autre en tant que programme CGI. Le serveur Apache doit ensuite être correctement configuré.

En vue d'installer PHP5 et PHP6 sur un même serveur, il suffit d'installer le premier sous forme de module et le second en tant que programme en CGI.

Après avoir installé PHP5, télécharger PHP6 et puis compiler le. Voila, il ne reste plus qu'à configurer Apache. Pour ce faire, vous pouvez activer le module Actions :

 sudo a2enmod actions

Passons à la configuration du virtual host, il suffit d'ajouter ce qui suit à un host :

 ScriptAlias /php6-cgi /usr/local/bin
Action php6-script /php6-cgi/php-cgi
AddHandler php6-script .php

Ce qui donne pour le virtual host complet :

 <VirtualHost *>
       ServerName http://www.monsite.com/ 
 
       DocumentRoot /home/mon_site/www/
       ScriptAlias /php6-cgi /usr/local/bin
       Action php6-script /php6-cgi/php-cgi
       AddHandler php6-script .php
 
       <directory>
               Options Indexes FollowSymLinks MultiViews
               AllowOverride None
               Order allow,deny
               allow from all
       </directory>
<VirtualHost>

Le chemin du Scriptalias (/usr/local/bin) doit correspondre au répertoire où est installé php-cgi, celui qui à été installé manuellement avec PHP6.

Après, vous pouvez modifier le AddHandler comme vous le souhaitez, dans cet exemple, les fichiers .php sont considérés comme du PHP6 mais si vous voulez, vous pouvez faire en sorte que seuls les fichiers .php6 soient interprétés par PHP6. Ainsi, les fichiers .php continueront diêtre considérés comme du PHP5 :

 ScriptAlias /php6-cgi /usr/local/bin
Action php6-script /php6-cgi/php-cgi
AddHandler php6-script .php6

Un simple phpinfo(); devrait vous confirmer que votre configuration fonctionne.

Article réalisé sous licence Creative Commons par Stéphane BRUN