Avant de commencer, il est bon de se poser la question suivante : "Pourquoi la compilation de PHP sous Windows est si difficile?". Deux raisons viennent immédiatement à l'esprit :
Windows ne dispose pas (encore) d'une grande communauté de développeurs qui partagent librement leurs sources. La conséquence directe est que les investissements nécessaires en infrastructure pour supporter ce type de développement n'ont pas été faits. Ce qui fait que le portage des utilitaires Unix a été la solution pour pallier ce manque. Ne soyez donc pas surpris de rencontrer cette parenté de temps en temps.
La majorité des instructions que vous allez rencontrer sont du type : "faire et oublier". Alors, asseyez-vous confortablement et suivez aussi scrupuleusement que possible les instructions.
Pour compiler l'exécutable PHP, vous avez besoin d'un Microsoft Development Environment. Microsoft Visual C++ 6.0 est recommendé. Pour extraire le fichier téléchargé, vous avez besoin d'un outil de décompression (e.g.: Winzip). Si vous n'avez pas encore d'utilitaire de décompression, vous pouvez en télécharger un chez InfoZip.
Avant de commencer, vous devez télécharger...
..les win32 buildtools de PHP, sur http://www.php.net/extra/win32build.zip.
..le code source du résolveur de noms DNS utilisé par PHP sur http://www.php.net/extra/bindlib_w32.zip. C'est un remplacement pour la bibliothèque resolv.lib inclue dans win32build.zip.
Si vous prévoyez de compiler PHP comme module pour Apache, vous aurez aussi besion des sources d'Apache.
Finalement, vous aurez besoin des sources PHP elles-mêmes. Les dernières versions sont accessibles sur le serveur CVS anonyme. Vous pouvez aussi télécharger une version intermédiaire ou l'archive des sources la plus récente.
Après téléchargement des paquets nécessaires, vous devez les extraire au bon endroit.
Créez un dossier où tous les fichiers seront placés après l'extraction, par exemple : C:\work.
Créez le dossier win32build dans votre dossier de travail (ici C:\work) et décompressez win32build.zip dedans.
Créez le dossier bindlib_w32 sous votre dossier de travail (ici C:\work) et décompressez bindlib_w32.zip dedans.
Décompressez le code source de PHP dans votre dossier de travail (C:\work).
Note : Les utilisateurs de Cygwin peuvent omettre la dernière étable. Un environnement Cygwin correctement installé fournit les fichiers obligatoires de bison.simple et bison.exe.
L'étape suivante est la configuration de MVC ++ pour préparer la compiler. Lancez Microsoft Visual C++, et allez dans le menu "select Tools => Options". Dans le dialogue, sélectionnez l'onglet "directories". Modifiez les valeurs pour les éléments du menu Executables, Includes et Library. Votre configuration doit alors ressembler à ceci :
Fichiers exécutables : c:\work\win32build\bin, Utilisateurs Cygwin : cygwin\bin
Fichiers d'en-têtes : c:\work\win32build\include
Fichiers bibliothèques : c:\work\win32build\lib
Vous devez compiler la bibliothèque resolv.lib. Decidez si vous avez besoin des symboles de débogage (bindlib - Win32 Debug) ou non (bindlib - Win32 Release). Compilez la configuration ad hoc :
Pour les utilisateurs de l'interface graphique, lancez VC++, puis sélectionnez le menu "File => Open Workspace", naviguez dans le répertoire c:\work\bindlib_w32 et sélectionnez le fichier bindlib.dsw. Puis sélectionnez "Build=>Set Active Configuration" et sélectionnez la configuration voulue. Enfin, sélectionnez "Build=>Rebuild All".
Pour les utilisateurs en ligne de commande, assurez-vous que vous avez enregistré les variables d'environnement C++, ou que vous avez exécuté vcvars.bat. Exécutez maintenant l'une des commandes suivantes :
msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"
msdev bindlib.dsp /MAKE "bindlib - Win32 Release"
La meilleure façon de compiler est de commander par la version CGI/exécutable.
Pour les utilisateurs GUI, lancez VC++, puis sélectionnez le menu "File => Open Workspace" et sélectionnez c:\work\php-4.x.x\win32\php4ts.dsw. Ensuite, sélectionnez le menu "Build=>Set Active Configuration", et sélectionnez la configuration voulue, soit php4ts - Win32 Debug_TS ou php4ts - Win32 Release_TS. Finalement, sélectionnez le menu "Build=>Rebuild All".
Pour les utilisateurs en ligne de commande, assurez-vous que vous avez enregistré les variables d'environnement C++, ou que vous avez exécuté vcvars.bat. Exécutez maintenant l'une des commandes suivantes depuis le dossier c:\work\php-4.x.x\win32 :
msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"
msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"
A ce stade, vous avez un exécutable php.exe utilisable, soit dans votre dossier c:\work\php-4.x.x.\Debug_TS soit sans le sous dossier Release_TS.
Il est possible de faire des modifications particulières mineures en éditant le fichier main/config.win32.h.in. Par exemple, vous pouvez changer la localisation du php.ini, des extensions internes ainsi que la localisation par défaut de ces extensions.
Ensuite, vous pouvez compiler la version CLI qui est conçue pour un usage en ligne de commande de PHP. Les étapes sont les mêmes que pour la compilation en mode CGI, hormis le fait que vous devez sélectionner php4ts_cli - Win32 Debug_TS ou php4ts_cli - Win32 Release_TS dans le fichier de projet. Après une compilation réussie, vous pouvez exécuter le fichier php.exe dans l'un des dossiers Release_TS\cli\ ou Debug_TS\cli\.
Note : Si vous voulez utiliser PEAR et l'installeur en ligne de commande, la version CLI-SAPI est obligatoire. Pour plus d'informations sur le projet PEAR et l'installeur, lisez la documentation sur le site de PEAR.
Afin de compiler le module SAPI (php4isapi.dll pour l'intégrer dans Microsoft IIS, vous devez utiliser la configuration php4isapi-whatever-config et compiler la DLL nécessaire.
Précédent | Sommaire | Suivant |
Installation Xitami sur Microsoft Windows | Niveau supérieur | Installation des extensions sous Windows |