[Apache / PHP / MySQL] Installation simultanée de PHP 5 et PHP 4 sur un serveur Windows

Page 1 / 2

Voici une installation sous Win32 (Windows 32 Bits) qui permet de tester facilement un script sous PHP 4 et PHP 5.

L'installation comprend 2 instances d'Apache :

PHP 5 sur le port 80
PHP 4 sur le port 81

L'installation inclut aussi la prise en compte de MySQL.
Note : Si vous voulez vous pouvez inverser les 2 ports mais n'oubliez pas de le changer a chaque endroit où c'est nécessaire et attetion à bien arrêter les services (apache2-php4 et apache2-php5) avant)

Cette procédure a été testée sous Win XP mais Apache fonctionne aussi sous seven. Attention cette installation se fait à vos risques et périls.

Si votre serveur ne fonctionne pas à la fin de ce tutoriel, c'est peut-etre qu'un ancien serveur n'a pas été complètement supprimé ou qu'un serveur utilise déjà le port 80 sur votre ordinateur. Par exemple : Skype.

Attention : Sous Windows 7 (Seven), nous vous recommandons d'utiliser le "VRAI" Compte Administrateur (aussi appelé "Super Administrateur")

Objectif de cette installation : Tester facilement des scripts en PHP 4 et PHP 5

Réalisation :

créer 2 instances d'Apache :
- une pour PHP 5 (port : 80)
- une pour PHP 4 (port : 81)

Pourquoi 2 instances ?

  • Problème du partage php.ini :
    Il est possible de créer 2 fichiers php.ini pour PHP 5 et PHP 4, il faut placer chaque fichier php.ini sous la racine php de sa distribution (ex : c:serverphp5), et indiquer le chemin dans httpd.conf : PHPIniDir "c:/server/php5"
  • Problème du partage éventuel de DLL :
    Les DLL peuvent être recherchées sous c:winnt; c:winntsystem32; PATH; répertoire courant. Il est possible de créer 2 instances d'Apache , pour pouvoir placer les DLL de chaque distribution PHP dans le répertoire de son instance Apache respective plutôt que sous SYSTEM32.

Organisation des répertoires :

  • c:\mysql
  • c:\server\apache2-php4
  • c:\server\php4
  • c:\server\apache2-php5
  • c:\server\php5
  • c:\server\doc Répertoire pour les documentations php, mysql...
  • c:\server\phpmyadmin Répertoire phpmyadmin
  • c:\server\sqlitemanager Répertoire sqlitemanager
  • c:\server\www Répertoire de publication

Télécharger le Notepad++ (pour éditer les fichiers de config.)

  • Notepad++ à la particularité d'afficher les numéros de lignes. c'est pour cela que j'indique les numéros de ligne où se trouve les lignes à modifier dans les fichiers de configs

Création de 2 instances Apache 2.0.50

  • Décompressez cette archive
  • Créer 2 répertoires
    c:\server\apache2-php4
    c:\server\apache2-php5
  • Décompresser le fichier téléchargé dans les 2 répertoires précédents
  • Créer les fichiers httpd.conf
  • Créer un répertoire de publication : c:\server\www
  • Créer une page de test dans : c:\server\www en .htm
  • Créer une page de test phpinfo() : c:\server\www\phpinfo.php avec comme contenu : phpinfo()
  • Dupliquer c:\server\apache2-php4\conf\httpd.conf en httpd-php4.conf
  • Dupliquer c:\server\apache2-php5\conf\httpd.conf en httpd-php5.conf
  • Modifier httpd-php4.conf
  • Rechercher c:/apache et Remplacer toutes les correspondances par c:/server/apache2-php4
  • 57 ServerRoot "c:/server/apache2-php4"
  • 229 DocumentRoot "c:/server/www"
  • 120 Listen 81
  • 213 ServerName localhost:81
  • Modifier httpd-php5.conf
  • Rechercher c:/apache et Remplacer toutes les correspondances par c:/server/apache2-php5
  • 57 ServerRoot "c:/server/apache2-php5"
  • 229 DocumentRoot "c:/server/www"
  • Installer les 2 instances Apache comme Services :
    Pour cela créer un fichier batch nommé
    "installer apache2-php4.bat"
    et copier cette ligne dedans
    apache -k install -n "apache2-php4" -f "C:\server\apache2-php4\conf\httpd-php4.conf"
  • puis de même pour la deuxième (PHP 5)
    créer un fichier batch nommé
    "installer apache2-php5.bat"
    et copier cette ligne dedans
    apache -k install -n "apache2-php5" -f "C:\server\apache2-php5\conf\httpd-php5.conf"
  • IMPORTANT : Passer les services en Démarrage manuel (Panneau de configuration --> Outils d'administration --> Services)
    Sous seven ouvrez le menu démmarer et tapez "Services" et cliquez sur "Afficher les Services locaux"
  • Lancer ou arrêter Apache en mode console (Ms-Dos) avec un fichier Batch (Sous le compte "VRAI Administrateur" sous seven) ou utiliser plus simplement ApacheMonitor.exe (c:\server\apache2-php4\ApacheMonitor.exe)
  • Lancer les services (Copier ces 2 lignes dans un fichier nommé "Démmarer Apache.bat")
    NET START "apache2-php4"
    NET START "apache2-php5"
  • Arrêter les services (Copier ces 2 lignes dans un fichier nommé "Arrêter Apache.bat")
    NET STOP "apache2-php4"
    NET STOP "apache2-php5"
  • Re-démmarrer les services (Copier ces 4 lignes dans un fichier nommé "Démmarer Apache.bat")
    @echo off
    echo Arret des Serveurs en cours ...
    NET STOP "apache2-php4"
    NET STOP "apache2-php5"
    NET STOP "MySql"
    echo Demarrage des Serveurs en cours ...
    NET START "apache2-php4"
    NET START "apache2-php5"
    NET START "MySql"