Serveur Apache HTTP Version 2.4

Il y a de nombreux points importants à connaître avant de compiler Le serveur HTTP Apache pour Microsoft Windows. Avant de commencer, lisez le document Utiliser le serveur HTTP Apache avec Microsoft Windows.
httpd peut être compilé sous Windows en utilisant une chaîne de compilation basée sur cmake, ou à partir de fichiers projet Visual Studio maintenus par les développeurs de httpd. La chaîne de compilation basée sur cmake supporte directement davantage de versions de Visual Studio, mais possède actuellement des fonctionnalités très limitées.
 Prérequis
 Prérequis Compilation à partir des sources Unix
 Compilation à partir des sources Unix Compilation à partir de la ligne de commandes
 Compilation à partir de la ligne de commandes Compilation depuis l'espace de travail IDE de Developer
    Studio
 Compilation depuis l'espace de travail IDE de Developer
    Studio Export des fichiers .mak de la ligne de commandes
 Export des fichiers .mak de la ligne de commandes Installation
 Installation Avertissement à propos de la compilation d'Apache à partir de
l'arborescence de développement
 Avertissement à propos de la compilation d'Apache à partir de
l'arborescence de développement Compilation de httpd avec cmake
 Compilation de httpd avec cmakePour compiler Apache, l'environnement doit satisfaire aux conditions suivantes :
Espace disque
Assurez-vous de disposer d'un minimum de 200 Mo d'espace disque disponible. Après l'installation, Apache occupe environ 80 Mo d'espace disque, plus l'espace réservé aux journaux et au cache, la taille de ces derniers pouvant augmenter rapidement. Les besoins réels en espace disque dépendent étroitement de la configuration choisie et des bibliothèques ou modules tiers installés, en particulier lorsqu'OpenSSL est mis en oeuvre. Comme de nombreux fichiers sont au format texte et donc facilement compressibles, l'utilisation de la compression du système de fichiers NTFS divise ces besoins par deux.
Correctifs requis
Le binaire httpd est compilé à l'aide de nombreux correctifs appliqués aux paquets tiers, ce qui permet de s'assurer que le code fourni est bien compilable et déboguable. Ces correctifs sont disponibles à http://www.apache.org/dist/httpd/binaries/win32/patches_applied/, et il est recommandé de les appliquer afin d'obtenir un résultat identique aux binaires "officiels" distribués par l'ASF.
Microsoft Visual C++ 6.0 (Visual Studio 97) ou supérieur.
Apache peut être compilé en utilisant l'outil ligne de
	commande, ou depuis l'espace de travail IDE Visual Studio. Pour
	la compilation depuis la ligne de commandes, l'environnement
	doit comporter les variables the PATH,
	INCLUDE, LIB, ainsi que d'autres
	variables qui peuvent être définies via le script
	vcvars32.bat :
Le SDK de la plate-forme Windows mis à jour, février 2003 ou plus récent.
Un SDK approprié pour la plate-forme Windows est inclus par défaut dans les versions complètes (et non Express/lite) de Visual C++ 7.1 (Visual Studio 2002) et supérieures ; les utilisateurs peuvent ignorer ces étapes, à moins qu'ils aient choisi d'utiliser une version plus récente ou différente du SDK.
Pour pouvoir utiliser Visual C++ 6.0 or 7.0 (Studio 2000
	.NET), l'environnement du SDK de la plate-forme doit être préparé en utilisant le
	script setenv.bat (installé par le SDK de la plate-forme) avant de
	lancer la compilation en ligne de commande ou l'interface GUI
	msdev/devenv. L'installation du SDK de la plate-forme pour les
	versions Express de Visual Studio (2003 et supérieures) devrait
	ajuster l'environnement par défaut de manière appropriée.
	  "c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32"
          "c:\Program Files\Platform SDK\setenv.bat"
        
Perl et awk
De nombreuses étapes recommandées ici nécessitent un interpréteur perl durant le processus de préparation de la compilation.
Pour installer Apache à partir du système de compilation, de
	nombreux fichiers sont modifiés via l'utilitaire
	awk.exe. awk effectue la modification des fichiers
	au moment de l'installation ; il a été choisi car il nécessite
	un téléchargement de petite taille (par rapport à Perl ou
	WSH/VB). Le site de Brian Kernighan http://www.cs.princeton.edu/~bwk/btl.mirror/ propose un
	binaire précompilé pour Win32, http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe, que
	vous devez enregistrer sous le nom awk.exe (plutôt
	que awk95.exe).
awk.exe que dans la variable PATH, ou dans le
	chemin des exécutables spécifié par l'option de menu Tools ->
	Options -> (Projects ->) Directories. Assurez-vous
	qu'awk.exe est bien dans votre chemin système.gawk.exe et que le
	fichier awk.exe est en fait un lien symbolique vers
	le fichier gawk.exe. Le shell de commandes Windows
	ne reconnaît pas les liens symboliques, et par conséquent la
	compilation d'InstallBin échouera. Pour contourner le problème,
	vous pouvez supprimer le lien awk.exe de
	l'installation de Cygwin, et copier gawk.exe vers
	awk.exe. Notez aussi que les portages cygwin/mingw
	de gawk 3.0.x étaient bogués ; veuillez par conséquent effectuer
	une mise à jour vers la	version 3.1.x avant l'utilisation de
	tout portage de gawk.[Optionnel] bibliothèque zlib (pour le module
	mod_deflate)
Zlib doit être installée dans un sous-répertoire du
	répertoire srclib et nommé zlib. Elle
	doit être compilée directement à cette place. Zlib est
	disponible à l'adresse http://www.zlib.net/ -- le
	fonctionnement correct du module mod_deflate a
	été vérifié avec la version 1.2.3.
          nmake -f win32\Makefile.msc
          nmake -f win32\Makefile.msc test
        
[Optionnel] Bibliothèques OpenSSL (pour le module
	mod_ssl et ab.exe avec le support
	ssl)
La configuration et la compilation d'OpenSSL nécessite l'installation de perl.
Pour pouvoir compiler mod_ssl ou le projet
	abs.exe, qui devient ab.c avec le support SSL
	activé, vous devez
	télécharger OpenSSL à l'adresse http://www.openssl.org/source/,
	et l'installer dans un sous-répertoire du répertoire
	srclib que vous nommerez openssl. Afin
	de préparer OpenSSL à la liaison avec le module Apache mod_ssl
	ou abs.exe, et désactiver les fonctionnalités d'Openssl grévées
	de brevets, vous pouvez utiliser la commande de compilation
	suivante :
          perl Configure no-rc5 no-idea enable-mdc2 enable-zlib VC-WIN32
               -Ipath/to/srclib/zlib -Lpath/to/srclib/zlib
          ms\do_masm.bat
          nmake -f ms\ntdll.mak
        
[Optionnel] Bibliothèques de bases de données (pour
mod_dbd et mod_authn_dbm)
La bibliothèque apr-util fournit un accès aux fonctionnalités clients dbm (base de données à base de clés) et dbd (base de données à base de requêtes) au serveur httpd et à certains de ses modules, comme les modules d'authentification et d'autorisation. Les fournisseurs sdbm dbm et odbc dbd sont compilés automatiquement.
Le support dbd inclut le paquet instantclient Oracle, MySQL, PostgreSQL et sqlite. Par exemple, pour les compiler tous, définissez LIB de façon à inclure le chemin des bibliothèques, INCLUDE de façon à inclure le chemin des en-têtes, et PATH de façon à inclure le chemin des dll et bin de chacun des quatre SDK, et définissez la variable d'environnement DBD_LIST de façon à indiquer au processus de compilation quels SDKs pilotes clients du sont correctement installés ; par exemple :
          set DBD_LIST=sqlite3 pgsql oracle mysql
        
De manière similaire, le support dbm peut être étendu avec DBM_LIST pour compiler un fournisseur Berkeley DB (db) et/ou un fournisseur gdbm, en configurant tout d'abord de la même manière LIB, INCLUDE et PATH afin de s'assurer que les bibliothèques et en-têtes de la bibliothèque client sont bien disponibles.
          set DBM_LIST=db gdbm
        
Voir le fichier README-win32.txt pour plus d'informations à propos de l'obtention des différents SDKs pilotes de bases de données.
Le projet du serveur HTTP Apache à pour politique de ne fournir que des sources de type Unix. Les paquets source de type Windows disponibles en téléchargement ont été élaborés par des contributeurs, et ne seront pas forcément reconduits pour toutes les versions. Vous pouvez cependant compiler le serveur sous Windows à partir des sources Unix en ajoutant quelques étapes supplémentaires.
      perl srclib\apr\build\lineends.pl
    
Vous pouvez maintenant compiler le serveur via l'environnement de développement Visual Studio en utilisant l'IDE. Les compilations du serveur en ligne de commande ne sont possibles avec des sources de type Unix que si vous exportez les fichiers .mak comme indiqué ci-dessous.
Makefile.win est le makefile principal ou racine
    d'Apache. Pour compiler Apache sous Windows, utilisez simplement une
    des commandes suivantes pour compiler la version
    release ou debug :
      nmake /f Makefile.win _apacher
      nmake /f Makefile.win _apached
    
Ces deux commandes effectuent la compilation d'Apache. Cependant, avec la deuxième, les fichiers résultants ne seront pas optimisés, ce qui va faciliter l'examen pas à pas du code pour trouver des bogues et résoudre les problèmes.
Vous pouvez indiquer vos choix en matière de fournisseurs dbd et dbm à l'aide des variables (d'environnement) additionnelles de make DBD_LIST et DBM_LIST ; voir les commentaires à propos des [Optionnel] Bibliothèques de bases de données ci-dessus. Consultez les commentaires initiaux dans Makefile.win pour plus d'options pouvant être fournies lors de la compilation.
Apache peut aussi être compilé depuis l'environnement de
    développement Visual Studio de VC++. Pour simplifier ce processus,
    l'espace de travail Visual Studio Apache.dsw est
    fourni. Cet espace de travail expose la liste complète des projets
    .dsp actifs nécessaires à l'installation binaire
    complète d'Apache. Il inclut les dépendances entre projets afin que
    ces derniers soient compilés selon l'ordre approprié.
Ouvrez l'espace de travail Apache.dsw, et
    sélectionnez InstallBin (compilation
    Release ou Debug, selon vos souhaits)
    comme Active Project. InstallBin provoque la
    compilation de tous les projets concernés, puis invoque
    Makefile.win pour installer les exécutables et dlls
    compilés. Vous pouvez modifier la valeur de INSTDIR=
    via la configuration de InstallBin, onglet Général,
    entrée ligne de commandes de compilation. La valeur par défaut de
    INSTDIR est le répertoire /Apache2. Si
    vous désirez effectuer un test de compilation (sans installation),
    sélectionnez le projet BuildBin.
Les fichiers projets .dsp sont distribués au format
    Visual Studio 6.0 (98). Visual C++ 5.0 (97) les reconnaît. Les
    utilisateurs de Visual Studio 2002 (.NET) et versions supérieures
    doivent convertir Apache.dsw et les fichiers
    .dsp en un projet Apache.sln, ainsi que
    les fichiers .msproj ; assurez-vous de reconvertir le
    fichier .msproj si l'un des fichiers source
    .dsp est modifié ! Cette opération est vraiment très
    simple, il suffit de réouvrir Apache.dsw dans l'IDE
    VC++ 7.0 et de le reconvertir.
      perl srclib\apr\build\cvtdsp.pl -2005
    
Les utilisateurs de Visual Studio 2002 (.NET) et versions
    supérieures doivent aussi utiliser
    la boîte de dialogue Configuration Manager du menu Build pour
    décocher les deux versions Debug et
    Release des modules mod_ssl
    et mod_deflate pour abs. Ces modules
    sont compilés
    en invoquant nmake ou directement l'IDE avec la cible
    BinBuild pour compiler ces modules de manière
    conditionnelle si les sous-répertoires de srclib
    openssl et/ou zlib existent, et en
    fonction des définitions des variables d'environnement
    DBD_LIST et DBM_LIST.
Les fichiers .mak exportés posent plus de problèmes,
    mais les utilisateurs de Visual C++ 5.0 en ont besoin pour compiler
    mod_ssl, abs (ab avec support
    SSL) et/ou mod_deflate. Les fichiers .mak
    supportent aussi un choix plus large de distributions de chaînes
    d'outils C++, comme Visual Studio Express.
Vous devez tout d'abord compiler tous les projets afin de créer
    toutes les cibles dynamiques auto-générées, de façon à ce que les
    dépendances puissent être interprétées correctement. Compilez
    l'ensemble du projet depuis l'IDE Visual Studio 6.0 (98), en
    utilisant la cible BuildAll, puis utilisez le menu de
    projet Export pour tous les makefiles (en cochant "with
    dependencies"). Utilisez la commande suivante pour transformer les
    chemins absolus en chemins relatifs de façon à ce que la compilation
    puisse s'effectuer depuis n'importe quelle position dans
    l'arborescence :
      perl srclib\apr\build\fixwin32mak.pl
    
Vous devez exécuter cette commande depuis la racine de
    l'arborescence des sources de httpd. Tout fichier projet
    .mak et .dep du répertoire courant et de
    ses sous-répertoires sera corrigé, et les repères de temps ajustés
    en fonction des .dsp.
Vérifiez toujours le SDK de la plate-forme ou autres chemins
    fichiers locaux, spécifiques à la machine dans les fichiers
    .mak et .dep générés. Le répertoire
    DevStudio\Common\MSDev98\bin\ (VC6) contient un fichier
    sysincl.dat qui énumère toutes les exceptions. Mettez à
    jour ce fichier (en particulier les chemins avec slashes et
    anti-slashes, tels que sys/time.h et
    sys\time.h) de façon à ignorer ces nouvelles
    dépendances. Inclure les chemins d'installation locale dans un
    fichier .mak distribué fera échouer la
    compilation.
Si vous soumettez un patch qui modifie les fichiers projet, nous devons valider la modification de ces fichiers projet au format Visual Studio 6.0. Les modifications doivent êtres simples, avec un minimum de drapeaux de compilation et d'édition de liens qui pourront être reconnus par tous les environnements Visual Studio.
Une fois compilé, Apache doit être installé dans le répertoire
    racine du serveur. La valeur par défaut est le répertoire
    \Apache2, sur le même disque.
Pour compiler et installer automatiquement tous les fichiers dans
    le répertoire rep désiré, utilisez une des commandes
    nmake suivantes :
      nmake /f Makefile.win installr INSTDIR=dir
      nmake /f Makefile.win installd INSTDIR=dir
    
L'argument rep de INSTDIR permet de
    spécifier le répertoire d'installation ; il peut être omis si Apache
    doit être installé dans \Apache22 (du lecteur de disque
    courant.
.dsp sont
	maintenus d'une distribution release à l'autre. Les
	fichiers .mak ne sont PAS régénérés, suite à
	l'énorme perte de temps des relecteurs . Vous ne
	pouvez donc pas utiliser les commandes NMAKE
	ci-dessus pour compiler des fichiers de projet .dsp
	révisés si vous n'exporter pas ensuite vous-même tous les
	fichiers .mak du projet. Ceci n'est pas nécessaire
	si vous effectuez la compilation depuis l'environnement
	Microsoft Developer Studio.La documentation principale pour ce mécanisme de compilation se trouve
  dans le fichier README.cmake situé dans l'arborescence
  des sources. Consultez ce fichier pour des instructions détaillées.
Pour compiler httpd avec cmake, vous devez compiler APR et APR-util
  séparément. Consultez les fichiers README.cmake de ces
  projets pour obtenir des instructions.
Les principales limitations de la compilation basée sur cmake sont héritées du projet APR-util et sont énumérées ci-dessous à cause de leur impact sur httpd :
mod_charset_lite et probablement
    d'autres modules tiers.