Installation sur les système Windows
PHP Manual

Compilation des sources

Ce chapitre va vous apprendre à compiler PHP depuis les sources sous Windows, en utilisant les utilitaires Microsoft. Pour compiler PHP avec Cygwin, référez-vous à Installation sur les systèmes UNIX.

Guide rapide de compilation sous Windows

Ce guide a été écrit en Mars 2008, en utilisant Windows XP Service Pack 2, avec toutes les mises à jour et en compilant PHP 5.2.5 et PHP 5.3. Il peut y avoir des modifications à effectuer si vous utilisez des outils différents.

  1. Téléchargez et installez :

  2. Copiez C:\Program Files\Microsoft SDKs\Windows\v6.1\Include\WinResrc.h vers C:\Program Files\Microsoft SDKs\Windows\v6.1\Include\winres.h.
  3. Créez le dossier C:\work.
  4. Téléchargez » les outils de compilation Windows et décompressez le contenu dans C:\work.
  5. Créez le dossier C:\usr\local\lib. Copiez le fichier C:\work\win32build\bin\bison.simple dans le nouveau répertoire créé précédemment.
  6. Téléchargez » la bibliothèque de résolution DNS Windows et décompressez le contenu dans le dossier C:\work.
  7. Ouvrez C:\work\bindlib_w32\bindlib.dsw. Si l'on vous demande de mettre à jour le projet, validez. Choisissez soit "Debug", soit "Release configuration" dans la barre de menu, puis, choisissez "Build => Build Solution".
  8. Récupérez une copie des sources PHP et extrayez la dans le dossier C:\work. À ce stade, ce dossier doit ressembler à quelque chose comme :
    +-C:\work
    | +-bindlib_w32
    | | +-Debug
    | | | +-resolv.lib
    | | | +-...
    | | +-...
    | +-win32build
    | | +-bin
    | | +-include
    | | +-lib
    | +-php-5.2.5
    | | +-build
    | | +-win32
    | | +-...
  9. Ouvrez une console en utilisant le raccourci "Visual Studio 2008 Command Prompt" dans le menu démarrer.
  10. Éxécutez la commande :
    C:\Program Files\Microsoft Visual Studio 9.0\VC> set "PATH=C:\work\win32build\bin;%PATH%"
    C:\Program Files\Microsoft Visual Studio 9.0\VC>
  11. Entrez dans le dossier C:\work\php-5.2.5.
  12. Éxécutez la commande cscript /nologo win32\build\buildconf.js.
  13. Éxécutez la commande cscript /nologo configure.js --disable-all --enable-cli --enable-cgi --enable-object-out-dir=.. --disable-ipv6. Pour activer le débogage, ajoutez --enable-debug à la fin.
  14. Éxécutez la commande nmake.
  15. Si tout se passe bien, vous devriez avoir un exécutable PHP CLI exécutable C:\work\Debug_TS\php.exe, ou C:\work\Release_TS\php.exe.

Environnement de compilation

Pour compiler et construire PHP, vous avez besoin d'un environnement de développement Microsoft. Les environnements suivants sont supportés :

Malgré le fait que VC6 (Microsoft Visual C++ 6.0) soit utilisé pour construire Windows, il ne peut plus être télécharger depuis le site Web de Microsoft. Les nouveaux utilisateurs souhaitant construire PHP librement doivent utiliser Microsoft Visual C++ 2005 Express Edition et ses composants auxiliaires.

Mise en place de Microsoft Visual C++ 2005 Express

Note: Combiné, ces composants sont très lourds, nécessitant plus d'un giga d'espace disque.

La mise en place de Microsoft Visual C++ 2005 Express est triviale et nécessite l'installation de 3 paquets différents. Assurez-vous de conserver les chemins d'installation de ces programmes. Téléchargez et installez les programmes suivants :

Il y a quelques étapes supplémentaires à l'issue de l'installation :

  • » MSVC 2005 Express doit être configuré afin d'utiliser Windows Platform SDK. Il n'est pas nécessaire d'effectuer la deuxième étape, sachant que PHP n'utilise pas l'interface graphique.
  • Windows Platform SDK contient un fichier nommé WinResrc.h, citué normalement dans le dossier Include du dossier d'installation SDK. Il doit être copier et renommer en winres.h, nom utilisé par PHP pour ce fichier.

Finallement, lorsque vous utilisez MSVC 2005 Express depuis la ligne de commande, diverses variables d'environnement doivent être définies. vsvars32.bat habituellement citué dans C:\Program Files\Microsoft Visual Studio 8\Common7\Tools (recherchez ce fichier sinon) contient ces déclarations. Les variables d'environnement PATH, INCLUDE et LIB doivent correspondre aux dossiers bin, include et lib de votre nouvelle installation SDK.

Note: Les chemins .NET SDK doit déjà être présent dans le fichier vsvars32.bat, vu que ce SDK s'installe dans le même dossier que Microsoft Visual C++ 2005 Express.

Libraries

Pour extraire les fichiers téléchargés, vous avez également besoin d'un utilitaire d'extraction de fichiers ZIP. Windows XP et supérieur inclut en natif cette fonctionnalité.

Avant de commencer, vous devez télécharger :

Finalement, vous avez besoin des sources de PHP elles-mêmes. Vous pouvez récupérer la dernière version de développement en utilisant le » CVS anonyme, un » snapshot ou la version compressée la plus récente des » sources.

Compiler tout ensemble

Après avoir téléchargé les paquets requis, vous devez les extraire dans un endroit approprié :

Si vous avez correctement suivi les étapes précèdentes, vous devez obtenir la structure suivante :
    
             +--C:\work
             |  |
             |  +--bindlib_w32
             |  |  |
             |  |  +--arpa
             |  |  |
             |  |  +--conf
             |  |  |
             |  |  +--...
             |  |
             |  +--php-5.x.x
             |  |  |
             |  |  +--build
             |  |  |
             |  |  +--...
             |  |  |
             |  |  +--win32
             |  |  |
             |  |  +--...
             |  |
             |  +--win32build
             |  |  |
             |  |  +--bin
             |  |  |
             |  |  +--include
             |  |  |
             |  |  +--lib
             

Si vous utilisez » Cygwin, vous devez également créer les dossiers C:\usr\local\lib, puis copier le fichier bison.simple depuis C:\work\win32build\bin dans le dossier C:\usr\local\lib.

Note: Si vous voulez utiliser PEAR ainsi que son installeur en ligne de commande, CLI-SAPI est nécessaire. Pour plus d'informations sur PEAR et son installeur, lisez la documentation sur le site web de » PEAR.

Construction de resolv.lib

Vous devez construire la bibliothèque resolv.lib. Décidez si oui ou non vous voulez de disponible les symboles de débogage (bindlib - Win32 Debug) ou pas (bindlib - Win32 Release) ; mais souvenez-vous de ce choix, car la construction du débogage ne se lit avec PHP que lorsqu'il est également construit en mode débogage. Construisez la configuration appropriée :

À ce point, vous devez avoir une bibliothèque utilisable de resolv.lib dans le dossier C:\work\bindlib_w32\Debug ou dans le sous-dossier Release. Copiez ce fichier dans votre dossier C:\work\win32build\lib en écrasant le fichier portant le même nom.

Construction de PHP en utilisant le nouveau système de construction [PHP >=5 uniquement]

Ce chapitre explique comment compiler PHP >=5 en utilisant le nouveau système de construction, basé sur CLI et extrèmement similaire au système de construction Unix pour PHP.

Note: Ce système de construction n'est pas disponible pour PHP 4. Référez-vous plutôt à Compilation des sources.

Avant de commencer, assurez-vous d'avoir lu Compilation des sources et d'avoir construit toutes les bibliothèques nécessaire, comme » Libxml ou » ICU (nécessaire pour PHP >= 6).

D'abord, vous devez ouvrir un prompt de commande Visual Studio, qui doit être disponible avec le menu Démarrer. Un prompt de commande classique ne fonctionnera pas, car il n'aura probablement pas les variables d'environnement nécessaires. Puis, tapez quelque chose comme cd C:\work\php-5.x.x pour entrer dans le dossier contenant les sources de PHP. Maintenant, vous êtes prêt à configurer PHP.

La seconde étape consiste à exécuter le fichier buildconf afin de lancer le script de configuration, en scannant le dossier à la recherche des fichiers config.w32. Par défaut, cette commande recherchera également dans les dossiers suivants : pecl; ..\pecl; pecl\rpc; ..\pecl\rpc. Depuis PHP 5.1.0, vous pouvez changer ce comportement en utilisant l'argument --add-modules-dir (e.g. cscript /nologo win32/build/buildconf.js --add-modules-dir=../php-gtk2 --add-modules-dir=../pecl).

La troisième étape consiste en la configuration. Pour voir la liste des options de configuration, tapez la commande cscript /nologo configure.js --help. Après avoir choisi les options à activer ou non, tapez quelque chose comme : cscript /nologo configure.js --disable-foo --enable-fun-ext. En utilisant l'argument --enable-foo=shared, vous tenterez de construire l'extension 'foo' en tant que module partagé, dynamiquement chargeable.

La dernière étape est la compilation. Pour ce faire, entrez simplement la commande nmake. Les fichiers générés (e.g. .exe et .dll) seront placés soit dans le dossier Release_TS, soit dans le dossier Debug_TS (si vous avez compilé avec le Thread safety), ou sinon, dans le dossier Release ou le dossier Debug.

Optionnellement, vous pouvez vouloir exécuter une suite de tests PHP en tapant la commande nmake test. Si vous ne voulez effectuer qu'un test précis, vous devez utiliser la variable 'TESTS' (e.g. nmake /D TESTS=ext/sqlite/tests test - exécutera que les tests sqlite). Pour effacer les fichiers créés pendant la compilation, vous pouvez utiliser la commande nmake clean.

Une option de configuration vraiement utile pour la construction de snapshots est l'option --enable-snapshot-build, qui ajoute un nouveau mode de compilation (nmake build-snap). Celui-ci tente de compiler chaque extension de disponible (en tant que partagée par défaut) en ignorant les erreurs de compilation dans les extensions individuelles ou SAPI.

Compilation de PHP en utilisant les fichiers DSW [PHP 4]

La compilation de PHP en utilisant les fichiers DSW n'est plus supportée depuis PHP 5 car un système plus flexible a été mis à disposition. Malgré tout, vous pouvez continuer à l'utiliser mais gardez à l'esprit que ce système n'est plus maintenu régulièrement, vous pourriez donc rencontrer des problèmes lors de la compilation. Cependant, pour compiler PHP 4 sous Windows, il n'y a que ce système de disponible.

Configuration de MVC ++

La première étape consiste à la configuration de MVC++ pour la préparation à la compilation. Lancez Microsoft Visual C++ et depuis le menu, sélectionnez "Tools => Options". Dans la fenêtre de dialogue, sélectionnez la tabulation des dossiers. Séquentiellement, modifier la liste en "Executables", "Includes", et "Library files". Votre entrée devrait ressembler à ceci :

  • Executable files: C:\work\win32build\bin, Cygwin users: C:\cygwin\bin
  • Include files: C:\work\win32build\include
  • Library files: C:\work\win32build\lib

Compilation

La meilleure façon de commencer est de compiler la version CGI :

  • Pour les utilisateurs d'interface, lancez VC++, sélectionnez "File => Open Workspace" puis, sélectionnez C:\work\php-4.x.x\win32\php4ts.dsw. Alors, sélectionnez "Build=>Set Active Configuration" et sélectionnez la configuration désirée, soit php4ts - Win32 Debug_TS, soit php4ts - Win32 Release_TS. Et pour finir, sélectionnez "Build=>Rebuild All".
  • Pour les utilisateurs de la ligne de commande, assurez-vous d'avoir de disponible les variables d'environnements C++ ou d'avoir exécuté le fichier vcvars.bat, puis, exécutez une des commandes suivantes depuis le répertoire C:\work\php-4.x.x\win32 :
    • msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"
    • msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"
    • À ce stade, vous devez avoir un binaire php.exe fonctionnel dans le dossier C:\work\php-4.x.x\Debug_TS ou dans le sous-dossier Release_TS.

Il est possible de faire quelques personnalisations sur le processus de compilation en éditant le fichier main/config.win32.h. Par exemple, vous pouvez modifier le dossier par défaut contenant le php.ini, les extensions internes et le dossier par défaut de vos extensions.

Puis, vous pourriez vouloir compiler la version CLI qui est destinée à utiliser PHP depuis la ligne de commande. Les étapes sont les mêmes que pour la compilation de la version CGI, mise à part que vous devez sélectionner le fichier de projet php4ts_cli - Win32 Debug_TS ou php4ts_cli - Win32 Release_TS. Après une compilation réussie, vous devriez trouver le fichier php.exe dans le dossier Release_TS\cli\ ou dans le dossier Debug_TS\cli\.

Pour compiler le module SAPI (php4isapi.dll) pour intégrer PHP avec Microsoft IIS, définissez votre configuration active à php4isapi-whatever-config et compilez la bibliothèque dll désirée.


Installation sur les système Windows
PHP Manual