Instructions pas à pas pour compiler PHP 5 et 6 sous Windows
Date de publication : 5 juillet 2007
Par
Zoe Slattery
Guillaume Rossolini (Tutoriels Web)
Ce tutoriel reflète les résultats de Zoe Slattery (IBM) lors de ses essais de compilation de PHP sous Windows. Elle s'est inspirée des diverses tentatives d'Elisabeth Smith, et aboutit à une procédure simple et fonctionnelle.
L'article original est disponible
ici.
I. Introduction
II. Téléchargement des outils
III. Récupérer PHP et ses pré requis
IV. Configurer l'environnement de compilation
Ajouter les chemins d'accès au script vsvars32.bat
Renommer winres.h
Changements aux variables d'environnement
V. Enfin - Compiler PHP
Démarrer l'environnement
Compiler resolv.lib
Compiler PHP
Lancer un test pour s'assurer que la compilation a réussi
VI. Liens
I. Introduction
J'ai passé du temps à essayer de compiler PHP sous Windows. J'ai finalement réussi mais cela m'a pris plus de temps que j'aurais aimé. Habituellement, j'utilise les fichiers binaires disponibles sur snaps.php.net mais, dans ce cas, j'essayais de déterminer si un patch proposé résolvait un défaut spécifique à Windows - j'avais donc réellement besoin de compiler PHP. Je voulais surtout utiliser un environnement de développement "gratuit" et, en tant que débutante au sujet de Windows (et utilisatrice de longe date d'*nix), je me suis heurtée à de nombreux petits détails qui m'ont pris du temps à corriger. J'ai décidé de documenter la démarche que j'ai suivie pour compiler PHP, afin que cela serve à d'autres personnes qui souhaiteraient faire la même chose que moi.
Ces instructions sont destinées à couvrir tout ce que vous devez être en mesure de faire, pour povoir compiler PHP sur un système Windows XP. Elles peuvent éventuellement fonctionner sur d'autres systèmes, je n'ai pas vérifié. Aucune connaissance préalable n'est requise, excepté savoir utiliser les fonctions fondamentales (comme mkdir, copy) et savoir utiliser un éditeur (par exemple edit). Aucun logiciel n'est requis, hormis Windows lui-même.
Les instructions ont été testées avec PHP5 et PHP6. La seule différence est que toutes les références à ICU sont ignorées si vous ne compilez pas PHP6.
II. Téléchargement des outils
Avant de commencer à compiler quoi que ce soit, vous devez télécharger un certain nombre d'outils de Microsoft. Cela peut prendre un certain temps, par exemple dans mon cas cela a mis 45 minutes pour installer les outils, alors que j'étais au bureau avec une connexion ethernet rapide. Depuis chez moi, avec ma connexion large bande passante, cla m'a pris 4 heures et demie pour faire la même chose. Je ne recommande pas une connexion modem si vous avez un moyen de l'éviter. Les outils prennent approximativement 500 Mo d'espace disque.
Visual C++ 2005 Express Edition compiler
- Téléchargez Visual C++ 2005 Express Edition depuis
cette page ;
- Vérifiez que vous avez le bon système d'exploitation et processeur pour pouvoir utiliser le compilateur ;
- Cliquez sur télécharger puis exécuter, ou bien sauvegardez sur votre disque puis exécutez si vous préférez ;
- Lisez et acceptez les conditions d'usage et tous les paramètres par défaut ;
- Le compilateur sera installé ici : C:\Program Files\Microsoft Visual Studio 8\ ;
- À la fin, il vous sera demandé de vous enregistrer : cela prend 5 minutes et si vous le ne le faites pas, quelque chose vous agacera.
Windows Server 2003 SP1 PLatform SDK
- Téléchargez le Windows Server 2003 SP1 PLatform SDK depuis
cette page ;
- Il y a trois options, j'ai choisi PSDK-x86.exe car j'utilise un système 32 bits - les deux autres sont les systèmes amd64 et ia64 ;
- Cliquez sur télécharger puis exécuter, ou bien sauvegardez sur votre disque puis exécutez si vous préférez ;
- Lisez et acceptez la licence, puis passez les écrans suivants ;
- Sélectionnez l'installation "typical" ;
- Le code sera installé dans C:\Program Files\Microsoft Platform SDK\ ;
- C'est une longue installation - 20 minutes depuis le bureau, 2 heures depuis chez moi.
 |
Il y a une version plus récente de ce SDK, que j'ai trouvée seulement après avoir utilisé la version ci-dessus. La nouvelle version est disponible ici. Je ne l'ai pas essayée, ainsi je ne peux pas dire si cela fonctionne avec ces instructions.
|
The .NET Framework 2.0 SDK
- Téléchargez le The .NET Framework 2.0 SDK depuis
cette page - attention, cela met quelques minutes à charger et peut laisser votre fenêtre active en arrière plan ;
- Dans la page options, sélectionnez simplement Tools (Outils) et Debugger, vous n'avez pas besoin des exemples et de la doc ;
- Choisissez le répertoire par défaut pour l'installation (le même que Visual C++) ;
- C'est un long téléchargement - 2 heures depuis chez moi.
Un utilitaire pour extraire les fichiers tar :
- Il existe un certain nombre de ces outils ; j'ai pris
celui-ci et tout a fonctionné : j'ai simplement téléchargé et suivi les instructions d'installation.
III. Récupérer PHP et ses pré requis
Tout d'abord, choisissez la structure que vous voulez donner à votre environnement de compilation. J'utilise e:\zoe\BUILDS donc chaque fois que je me réfère à ce répertoire, vous devriez mettre le vôtre à la place.
Il m'a semblé que le plus simple pour extraire des fichiers .zip sous Windows est de les ouvrir avec l'Explorer et de choisir "Extraire tous les fichiers".
À la fin de cette section, la structure de sous répertoires doit ressembler à ceci :
|
|-winbld32
|
e:\zoe\BUILDS - |-bindlib
|
|-icu
|
|-php6.0YYYYMMDDHHmm (or php5.0YYYYMMDDHHmm if you are building PHP5)
|
|
- Placez les
Windows build tools dans e:\zoe\BUILDS (win32build.zip) ;
- Extrayez le fichier ZIP dans e:\zoe\BUILDS\win32build ;
- Extrayez
bindlib dans e:\zoe\BUILDS\bindlib\ ;
- Récupérez les bibliothèques
ICU, extrayez-les dans e:\zoe\BUILDS\icu ;
- Récupérez PHP - J'ai utilisé
le site des snaps et téléchargé le fichier .tar.gz. Je l'ai copié dans mon répertoire e:\zoe\BUILDS et utilisé l'utilitaire tar (étape #1) pour extraire le contenu vers e:\zoe\BUILDS\php6.0-YYYYMMDDHHmm.
| Pour ICU, j'ai pris ceci : |
icu4c-3_6-Win32-msvc7_1.zip 6.1MB Windows (win32 x86 32-bit) Visual Studio.Net 2003 (MSVC 7.1)
|
IV. Configurer l'environnement de compilation
Avant de pouvoir compiler, un peu de configuration est requise afin de faire en sorte que Visual Studio Express reconnaisse le SDK, et de dire aus outils de compilation où ils peuvent trouver les bibliothèques dont PHP a besoin. Pour référence, flex et bison font partie du répertoire win32build et ICU est dans le répertoire ICU. Bien sûr, si vous compilez PHP5 vous n'aurez pas besoin d'ICU.
Ajouter les chemins d'accès au script vsvars32.bat
Dans le répertoire C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\, éditez vsvars32.bat pour inclure les références au Platform SDK dans PATH, INCLUDE et LIB.
| Les lignes concernées dans mon fichier sont : |
@set PATH=C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;C:\Program Files\Microsoft Visual Studio 8\VC\BIN;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\VCPackages;C:\Program Files\Microsoft Platform SDK\Bin;%PATH%
@set INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;c:\Program Files\Microsoft Platform SDK\Include;%INCLUDE%
@set LIB=C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;c:\Program Files\Microsoft Platform SDK\Lib;%LIB%
|
Renommer winres.h
Dans le répertoire C:\Program Files\Microsoft Platform SDK\Include, copiez WinResrc.h vers winres.h
Changements aux variables d'environnement
Démarrer->Panneau d'administration->Système->Avancé->Variables d'environment
- Modifier ou ajoutez "PATH" pour ajouter e:\zoe\BUILDS\icu\bin;e:\zoe\BUILDS\win32build\bin
- Modifiez ou ajoutez "INCLUDE" pour ajouter e:\zoe\BUILDS\icu\include;e:\zoe\BUILDS\win32build\include
- Modifiez ou ajoutez "LIB" pour ajouter e:\zoe\BUILDS\icu\lib;e:\zoe\BUILDS\win32build\lib
Ces modifications ne prendront pas effet dans les fenêtres qui sont déjà ouvertes, vous devez les fermer puis les ouvrir à nouveau.
V. Enfin - Compiler PHP
Démarrer l'environnement
Démarrer -> Visual C++ 2005 Express Edition -> Visual Studio Tools -> Visual Studio 2005 Command Prompt
Compiler resolv.lib
| Dans la fenêtre de Visual Studio : |
cd e:\zoe\BUILDS\bindlib
vcexpress
|
File -> Open -> Project/Solution -> bindlib.dsp
- Vous aurez un avertissement à propos d'une conversion de bindlib.dsp au format actuel : à "Convert and open", sélectionnez "Yes"
Maintenant, allez dans Project->Properties->Configuration properties->C/C++/General
- Tout en haut, cliquez sur "Configuration manager", choisissez "Release" puis "Win32" comme configuration active ;
- Dans les répertoires supplémentaires d'Includes (additional Include directories), ajoutez ";c:\Program Files\Microsoft Platform SDK\Include" après le point puis cliquez sur Ok (cela lui dit où trouver winsock.h) ;
- Enfin : cliquez sur "Build" et sélectionnez "Build bindlib".
Compiler PHP
| Dans la fenêtre de Visual Studio : |
cd e:\zoe\BUILDS\php6.0-200707031830
buildconf
cscript /nologo configure.js "--with-extra-libs=e:\zoe\BUILDS\icu" "--with-extra-includes=e:\zoe\BUILDS\icu\include" "--without-simplexml" "--enable-prefix=e:\php6" "--disable-zlib" "--disable-odbc" "--disable-cgi" "--enable-cli" "--without-iconv" "--without-libxml"
nmake
nmake install
|
Lancer un test pour s'assurer que la compilation a réussi
Creéz un script avec le contenu suivant :
Dans la fenêtre de commandes, tapez :
Terminé !
VI. Liens
Références
Liens Developpez


Les sources présentées sur cette page sont libres de droits,
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©
2007 Zoe Slattery & Guillaume Rossolini. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur.
Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E
de dommages et intérêts.
Cette page est déposée à la
SACD.