Aller au menu - Aller au contenu

[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)
Avatar
Auteur : Thedownloader
Note : 19 / 20 (2 votes)
Visualisations : 5 661

Plus d'informations Plus d'informations
Bonjour !
Logo PHP

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...

Debian

Ici, j'utiliserai Debian parce que c'est une distribution répandue dans le monde des serveurs.
Cependant, ça ne pose pas de problème de faire ça avec une autre distrib. ;)

Je vous souhaite une bonne lecture !
Il peut être intéressant de connaître les bases du shell linux (cd, ls, cp, mv, etc.) pour comprendre le tuto.
Il y a un très bon tuto là : http://www.siteduzero.com/tuto-3-1638- [...] le-shell.html.
Sommaire du tutoriel :
Icône du chapitre

Prérequis

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...).

Dans un serveur, on n'utilise pas d'environnement graphique, car celui-ci prend beaucoup de ressources système alors que tout peut être fait en console.
Autant prendre de bonne habitudes ! :p

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
    su root
    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.
Le fichier sources.list contient la listes des dépôts où se trouvent les applications que le système utilise, ou que vous utilisez !
Il faut donc qu'il soit complet pour ne pas passer à côté des mises à jour (de sécurité ou non :) ).


Voici un exemple de sources.list : Code : Autre
1
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.

Installer le serveur web : Apache 2

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
aptitude install apache2


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 remarque également qu'on a été redirigé sur l'adresse http://192.168.0.100/apache2-default.
Il s'agit de la configuration par défaut de Apache, nous allons arranger ça. :lol:


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 :pirate: .
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 !

Un choix stratégique a faire...

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. :p
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°1Choix 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).

Installer PHP en module de Apache

On installe donc le module PHP4 pour Apache :
Code : Console
aptitude install php4

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
1
<? phpinfo(); ?>

Plus d'infos sur la fonction phpinfo() : http://fr.php.net/manual/fr/function.phpinfo.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...

Installer PHP en mode CGI

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 : Autre
1
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
a2enmod actions


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 : Autre
1
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 !! :magicien:

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 :p ).
Code : Console
cd /var/www

cp phpinfo.php phpinfo.miaou

nano .htaccess

On écrit alors :
Code : Autre
1
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 :waw: .

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

Elephant PHP

Elephant PHP

J'espère que ce tuto vous a été profitable !

Vous pouvez me contacter par MP si vous avez un problème.
Retour en haut Retour en haut


Créé : le 27/06/2007 à 11:46:15
Modifié : le 22/08/2008 à 16:08:09
Avancement : 100%
Licence : Copie non autorisée

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news | XHTML 1.0 | CSS 2.0
Édité par Simple IT SARL : Nous contacter | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 250 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.042s (0.0318s)