[Plan du site]
Vous êtes ici ---
> Le Site du Zéro
> Les tutoriels
> Non-Officiels
> Site Web
> Serveur
> PHP4 et PHP5 en même temps sur un serveur Linux
> Lecture du tutoriel
PHP4 et PHP5 en même temps sur un serveur Linux
Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Bonjour !
Le but de ce tuto est de vous permettre de faire tourner à la fois PHP4 et PHP5 sur un serveur Linux.
Mais quel est l'intérêt d'avoir 2 versions de PHP à la fois ??
Premièrement, PHP4 est plus rapide que PHP5. Il est donc intéressant du point de vue performance. Mais PHP5 propose plus de fonctionnalités (une POO plus poussée, par exemple). Il peut donc être utile d'avoir les 2 à la fois sur son serveur de manière à tester ou à faire tourner ses scripts sur les deux, sans pour autant avoir deux serveurs...
Je vous souhaite une bonne lecture !
Ce tuto se fait en console, vous n'avez pas besoin d'installer un environnement graphique (KDE, Gnome, ...).
Cependant, vous pouvez quand même le suivre si vous en avez un déjà installé : il suffit d'ouvrir un terminal (dans le menu, Konsole ou Terminal...).
Les opérations que vous allez réaliser nécessitent d'être faites en temps que
root.
L'utilisateur
root a accès à tout, c'est le boss.

Il y a 2 manières de s'identifier :
- si vous n'avez pas d'environnement graphique, vos identifiants vous seront demandés après le démarrage de votre ordinateur serveur ;
- si vous avez un environnement graphique, vous devez d'abord ouvrir une console (comme indiqué plus haut) et taper la commande Code : Console qui vous demandera votre mot de passe root (renseigné à l'installation du système). (Les droits root iront à la console que vous avez ouverte : si vous la fermez, il faudra retaper cette commande !)
Ceci étant dit, nous pouvons commencer !
Avant toute chose, assurez-vous d'avoir un fichier
/etc/apt/sources.list bien configuré et un système à jour.
Voici un
exemple de
sources.list :
Code : Autre1
2
3
4
5
6
7
| #Attention, ce sources.list est fait pour la version "testing" de Debian, c'est-à-dire la future version stable.
#Les paquets présents dans ces dépôts sont testés, mais pas totalement sûrs du point de vue de la stabilité.
deb <lien url="http://mir1.ovh.net/debian/">http://mir1.ovh.net/debian/</lien> testing main non-free contrib
deb <lien url="http://security.debian.org/">http://security.debian.org/</lien> testing/updates main contrib non-free |
Il suffit ensuite de taper en console deux commandes pour avoir un système à jour.
Code : Console | aptitude update
aptitude full-upgrade |
aptitude full-upgrade met à jour la distribution. Si vous ne souhaitez pas faire ça, contentez-vous de aptitude safe-upgrade.
Il est possible que le noyau soit mis à jour également. Dans ce cas-là, il faut redémarrer pour charger le nouveau noyau (utilisez la commande reboot).
Par souci de simplicité, on va considérer que l'on est dans un réseau local qui contient notre serveur et un autre ordinateur qui permettra de tester le serveur.
On va dire que l'adresse IP du serveur sera
192.168.0.100, même si ça n'a pas d'importance pourvu qu'on la connaisse.
Avant de se lancer dans l'installation de PHP, il faut d'abord avoir un serveur web !
On va donc installer
Apache 2 à l'aide de cette commande (toutes les commandes sont à faire en tant que
root) :
Code : Console
Note : faire
aptitude ou
apt-get install revient au même.
Il faut accepter les dépendances de apache2 en tapant "o" (pour oui) puis sur Entrée.
Maintenant qu'Apache est installé, on va le tester.
À partir de votre autre ordinateur, lancez un navigateur web et accédez à l'URL du serveur :
http://192.168.0.100.
Logiquement, vous obtenez un énorme
It works!
On va aller dans un des fichiers de configuration :
Code : Console | nano /etc/apache2/sites-available/default |
Il suffira d'ajouter un dièse # au début de la ligne
RedirectMatch ^/$ /apache2-default/ pour la commenter.
On redémarre Apache :
Code : Console | /etc/init.d/apache2 restart |
On réessaye d'aller sur
http://192.168.0.100.
Et là, magie ! Au lieu d'avoir le message de tout à l'heure, on a une arborescence qui contient uniquement le dossier
apache2-default.
Ce dossier étant inutile, on va le supprimer

.
Par défaut, Apache va chercher les pages dans
/var/www/.
On fait donc :
Code : Console | rm -r /var/www/apache2-default |
Voilà, on a fini de configurer Apache ! On s'attaque aux PHP, maintenant !
Il existe plusieurs méthodes pour arriver à nos fins.
On pourrait faire tourner deux instances d'Apache en même temps, chacune avec un PHP différent, mais cette méthode ne me plaît pas.
Celle que j'ai retenue fait tourner un PHP en tant que module d'Apache, et l'autre est appelé en mode CGI.
Bon je sais, ce n'est pas très clair comme explications, tout ça.
Je m'explique.
Le PHP installé en tant que module d'Apache sera le PHP exécuté par défaut. Il sera également plus rapide.
Seulement, comme nous voulons aussi l'autre PHP, nous l'installerons de manière à pouvoir l'appeler dans certains cas, qui seront définis dans un fichier
.htaccess.
On a donc 2 cas de figure :
| | Choix n°1 | Choix n°2 |
|---|
| Module Apache |
PHP4 |
PHP5 |
| Module CGI |
PHP5 |
PHP4 |
Il faut donc choisir le PHP que l'on utilisera le plus en module d'Apache.
Pour la suite du tuto, on va opter pour le choix n°1, mais la démarche est identique à celle du 2 (sauf pour les n° de version des PHP).
On installe donc le module PHP4 pour Apache :
Code : Console
Apache est redémarré pendant l'installation ; inutile de le faire manuellement.
On va maintenant tester ça !
Rien de plus simple : on va créer un fichier
phpinfo.php qui contiendra le code suivant :
Code : PHP
On y va !
Code : Console | echo "<? phpinfo(); ?>" > /var/www/phpinfo.php |
On accède à ce fichier avec l'autre ordi :
http://192.168.0.100/phpinfo.php.
Si tout marche bien, on a une page pleine d'infos sur la config actuelle de PHP... mais surtout le n° de version.
On a donc un serveur web avec PHP4

. Ce n'est pas fini...
On va installer
uniquement le module
cgi de PHP5.
Code : Console | aptitude install php5-cgi |
Il ne faut surtout pas installer le paquet php5 !
Il faut maintenant retourner dans notre fichier de configuration
/etc/apache2/sites-available/default :
Code : Console | nano /etc/apache2/sites-available/default |
Recherchez les lignes :
Code : Autre1
2
3
4
5
| <Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None |
Remplacez
AllowOverride None par
AllowOverride All ; ça va nous permettre de faire ce qu'on veut avec nos fichiers
.htaccess .
Il faut également activer le module "Actions" de Apache :
Code : Console
Ensuite, on redémarre Apache :
Code : Console | /etc/init.d/apache2 restart |
On va maintenant décider quels fichiers on veut exécuter avec PHP5.
Solution 1
On peut choisir tous les fichiers ayant l'extension
.php d'un répertoire :
Code : Console | cd /var/www
mkdir php5
cp phpinfo.php php5/phpinfo.php
nano php5/.htaccess |
On écrit alors :
Code : Autre1
2
3
| AddHandler x-httpd-php5 .php
Action x-httpd-php5 /cgi-bin/php5 |
On teste les pages
http://192.168.0.100/phpinfo.php et
http://192.168.0.100/php5/phpinfo.php avec le navigateur, et on a 2 versions de PHP qui fonctionnent en même temps !!
Solution 2
Autre astuce : on peut choisir de laisser les fichiers
.php à PHP4 et d'exécuter ceux ayant une autre extension avec PHP5 (l'extension peut être
.php5, mais nous prendrons
.miaou pour cet exemple

).
Code : Console | cd /var/www
cp phpinfo.php phpinfo.miaou
nano .htaccess |
On écrit alors :
Code : Autre1
2
3
| AddHandler x-httpd-php5 .miaou
Action x-httpd-php5 /cgi-bin/php5 |
On remarque en testant que non seulement le fichier
.miaou, qui devrait être proposé en téléchargement (du fait de son extension hors normes), est affiché comme une page, mais qu'en plus il est passé par PHP5

.
Ces 2 solutions peuvent être combinées...
Il est possible que vous ayez besoin de certaines extensions de PHP (GD pour les images, MySQL pour la base de donnée, par exemple)...
Dans ce cas, il faut faire :
Code : Console | aptitude install php4-gd php5-gd mysql-server php4-mysql php5-mysql |
J'espère que ce tuto vous a été profitable !
Vous pouvez me contacter par
MP si vous avez un problème.