Compilation d’Apache pour Microsoft Windows

Création de httpd avec les fichiers de projet Visual Studio inclus

Exigences

La compilation d’Apache nécessite l’environnement suivant pour être correctement installé:

  • Espace disque

    Assurez-vous d’avoir au moins 200 Mo d’espace disque disponible. Après l’installation, Apache nécessite environ 80 Mo d’espace disque, plus de l’espace pour les fichiers journaux et de cache, qui peuvent croître rapidement. Les besoins réels en espace disque varient considérablement en fonction de la configuration choisie et des modules ou bibliothèques tiers, en particulier lorsque OpenSSL est également construit. Parce que de nombreux fichiers sont du texte et très facilement compressés, la compression du système de fichiers NTFS réduit ces exigences de moitié.

  • Correctifs appropriés

    Le binaire httpd est construit à l’aide de plusieurs correctifs pour des paquets tiers, ce qui garantit que le code publié est constructible et débogable. Ces correctifs sont disponibles et distribués à partir de http://www.apache.org/dist/httpd/binaries/win32/patches_applied/ et il est recommandé de les appliquer pour obtenir des résultats identiques aux binaires distribués « officiels » ASF.

  • Microsoft Visual C++ 6.0 (Visual Studio 97) ou version ultérieure.

    Apache peut être construit à l’aide des outils de ligne de commande ou depuis l’atelier Visual de Visual Studio. La construction en ligne de commande nécessite que l’environnement reflète le PATH, INCLUDE, LIB et d’autres variables qui peuvent être configurées avec le script vcvars32.bat.

    Vous voudrez peut-être le pack de processeurs Visual Studio pour votre ancienne version de Visual Studio, ou une version complète (non Express) des nouvelles éditions Visual Studio, pour le ml.assembleur exe. Cela vous permettra de construire OpenSSL, si vous le souhaitez, en utilisant l’implémentation de code d’assemblage plus efficace.
    Seule la chaîne d’outils du compilateur Microsoft est activement prise en charge par les contributeurs httpd actifs. Bien que le projet accepte régulièrement des correctifs pour s’assurer que MinGW et d’autres constructions alternatives fonctionnent et les améliorent, ils ne sont pas activement entretenus et sont souvent brisés au cours d’un développement normal.
  • Mise à jour du SDK de la plate-forme Microsoft Windows, février 2003 ou version ultérieure.

    Un SDK de plate-forme Windows approprié est inclus par défaut dans les versions complètes (pas express/lite) de Visual C++ 7.1 (Visual Studio 2002) et ultérieures, ces utilisateurs peuvent ignorer ces étapes à moins de choisir explicitement une version plus récente ou différente du SDK de plate-forme.

    Pour utiliser Visual C++ 6.0 ou 7.0 (Studio 2000 .NET), l’environnement SDK de la plate-forme doit être préparé à l’aide du script setenv.bat (installé par le SDK de la plate-forme) avant de démarrer la construction en ligne de commande ou de lancer l’environnement graphique msdev/devenv. L’installation du SDK de plate-forme pour les versions de Visual Studio Express (2003 et ultérieures) doit 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

    Plusieurs étapes recommandées ici nécessitent un interpréteur perl pendant le processus de préparation de la construction, mais il n’est pas nécessaire.

    Pour installer Apache dans le système de compilation, plusieurs fichiers sont modifiés à l’aide de l’utilitaire awk.exe. awk a été choisi car il s’agit d’un très petit téléchargement (comparé à Perl ou WSH /VB) et accomplit la tâche de modifier les fichiers de configuration lors de l’installation. Le site http://www.cs.princeton.edu/~bwk/btl.mirror/ de Brian Kernighan a un binaire natif Win32 compilé, http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe que vous devez enregistrer avec le nom awk.exe (plutôt que awk95.exe).

    Si awk.exe n’est pas trouvé, Makefile.la cible d’installation de win n’effectuera pas de substitutions dans l’installation.fichiers de configuration. Vous devez modifier manuellement l’installation.fichiers de configuration pour permettre au serveur de démarrer. Recherchez et remplacez toutes les balises « @token@ » selon le cas.
    L’EDI Visual Studio ne trouvera awk.exe que dans le CHEMIN d’ACCÈS ou le chemin exécutable spécifié dans l’option de menu Outils – > Options – > (Projets – >) Répertoires. Assurez awk.exe est dans le chemin de votre système.
    Notez également que si vous utilisez Cygwin tools (http://www.cygwin.com/), l’utilitaire awk est nommé gawk.exe et que le fichier awk.exe est vraiment un lien symbolique vers le fichier gawk.exe. Le shell de commande Windows ne reconnaît pas les liens symboliques et, à cause de cette construction, InstallBin échouera. Une solution de contournement consiste à supprimer awk.exe de l’installation de cygwin et à copier gawk.exe vers awk.exe. Notez également les ports cygwin / mingw de gawk 3.0.x étaient bogués, veuillez passer à la version 3.1.x avant d’essayer d’utiliser un port gawk.
  • bibliothèque zlib (pour mod_deflate)

    Zlib doit être installé dans un sous-répertoire srclib nommé zlib. Cela doit être construit sur place. Zlib peut être obtenu à partir de http://www.zlib.net/ — le mod_deflate est confirmé pour fonctionner correctement avec la version 1.2.3.

    nmake -f win32\Makefile.msc
    nmake -f win32\Makefile.msc test

  • Bibliothèques OpenSSL (pour mod_ssl et ab.exe avec prise en charge ssl)

    La bibliothèque OpenSSL est un logiciel cryptographique. Le pays dans lequel vous résidez actuellement peut avoir des restrictions sur l’importation, la possession, l’utilisation et/ou la réexportation vers un autre pays du logiciel de cryptage. AVANT d’utiliser un logiciel de cryptage, veuillez vérifier les lois, réglementations et politiques de votre pays concernant l’importation, la possession, l’utilisation et la réexportation du logiciel de cryptage, pour voir si cela est autorisé. Voir http://www.wassenaar.org/ pour plus d’informations.

    La configuration et la construction d’OpenSSL nécessitent l’installation de perl.

    OpenSSL doit être installé dans un sous-répertoire srclib nommé openssl, obtenu à partir de http://www.openssl.org/source/, afin de compiler mod_ssl ou le projet abs.exe, qui est ab.c avec le support SSL activé. Pour préparer OpenSSL à être lié à Apache mod_ssl ou abs.exe et désactivez les fonctionnalités grevées de brevets dans OpenSSL, vous pouvez utiliser les commandes de génération suivantes:

    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

    Il n’est pas conseillé d’utiliser zlib-dynamic, car cela transfère le coût de dégonflage des flux SSL à la première requête qui doit charger la dll zlib. Remarque le correctif suggéré permet à l’indicateur -L de fonctionner avec les versions Windows, corrige le nom de zdll.lib et assure.les fichiers pdb sont générés pour le dépannage. Si l’assembleur n’est pas installé, vous ajouterez no-asm ci-dessus et utiliserez ms\do_ms.bat au lieu de ms\do_masm.script de chauve-souris.
  • Bibliothèques de bases de données (pour mod_dbd et mod_authn_dbm)

    La bibliothèque apr-util expose les fonctionnalités client dbm (base de données à clé) et dbd (base de données orientée requête) au serveur httpd et à ses modules, tels que l’authentification et l’autorisation. Les fournisseurs sdbm dbm et odbc dbd sont compilés sans condition.

    La prise en charge de dbd inclut le package Oracle instantclient, MySQL, PostgreSQL et sqlite. Pour tout créer, par exemple, configurez la BIBLIOTHÈQUE pour inclure le chemin de la bibliothèque, INCLUDE pour inclure le chemin des en-têtes et PATH pour inclure le chemin de la dll bin des quatre SDK, et définissez la variable d’environnement DBD_LIST pour informer la génération des SDK de pilote client correctement installés, par exemple.;

    set DBD_LIST=sqlite3 pgsql oracle mysql

    De même, la prise en charge de dbm peut être étendue avec DBM_LIST pour créer un fournisseur Berkeley DB (db) et / ou un fournisseur gdbm, en configurant de la même manière LIB, INCLUDE et PATH first pour s’assurer que les bibliothèques et les en-têtes de la bibliothèque cliente sont disponibles.

    set DBM_LIST=db gdbm

    Selon le choix des distributions de base de données, il peut être nécessaire de changer le nom de la cible de lien (par exemple gdbm.lib contre libgdb.lib) qui sont répertoriés dans le correspondant.dsp /.fichiers mak dans les répertoires srclib\apr-util\dbd or…\dbm.

    Voir le README-win32.fichier txt pour plus d’astuces sur l’obtention des différents SDK du pilote de base de données.

Construction à partir de sources Unix

La stratégie du projet de serveur HTTP Apache est de ne publier que des sources Unix. Les paquets source Windows mis à disposition pour téléchargement ont été fournis par des bénévoles et peuvent ne pas être disponibles pour chaque version. Vous pouvez toujours construire le serveur sous Windows à partir de l’archive tarball source Unix en quelques étapes supplémentaires.

  1. Téléchargez et décompressez l’archive source Unix pour la dernière version.
  2. Téléchargez et décompressez l’archive source Unix pour les dernières versions d’APR, AR-Util et APR-Iconv, placez ces sources dans les répertoires httpd-2.x.x\srclib\apr, httpd-2.x.x\srclib\apr-util et httpd-2.x.x\srclib\apr-iconv
  3. Ouvre une invite de commande et un CD vers httpd-2.dossier x.x
  4. Exécutez l’utilitaire de conversion des fins de ligne à l’invite;

perl srclib\apr\build\lineends.pl

Vous pouvez maintenant créer le serveur avec l’environnement de développement Visual Studio à l’aide de l’EDI. Les versions en ligne de commande du serveur ne sont pas possibles à partir de sources Unix, sauf si vous exportez.fichiers mak comme expliqué ci-dessous.

La version en ligne de commande

Makefile.win est le makefile Apache de niveau supérieur. Pour compiler Apache sous Windows, utilisez simplement l’une des commandes suivantes pour créer la saveur release ou debug:

nmake /f Makefile.win _apacher
nmake /f Makefile.win _apached

L’une ou l’autre commande compilera Apache. Ce dernier désactivera l’optimisation des fichiers résultants, ce qui facilitera l’étape unique du code pour trouver les bogues et traquer les problèmes.

Vous pouvez ajouter vos choix de fournisseurs apr-util dbd et dbm avec les variables make (environment) supplémentaires DBD_LIST et DBM_LIST, voir les commentaires sur les bibliothèques de bases de données, ci-dessus. Passez en revue les commentaires initiaux dans Makefile.gagnez pour les options supplémentaires qui peuvent être fournies lors de l’appel de la génération.

Developer Studio Workspace Build Build

Apache peut également être compilé à l’aide de l’environnement de développement Visual Studio de VC++. Pour simplifier ce processus, un espace de travail Visual Studio, Apache.dsw, est fourni. Cet espace de travail expose la liste complète des projets .dsp qui sont nécessaires pour la version binaire complète d’Apache. Il inclut des dépendances entre les projets pour s’assurer qu’ils sont construits dans l’ordre approprié.

Ouvrez l’espace de travail Apache.dsw et sélectionnez InstallBin (Release ou Debug build, selon vos besoins) comme Projet actif. InstallBin provoque la construction de tous les projets associés, puis appelle Makefile.win pour déplacer les exécutables et les dll compilés. Vous pouvez personnaliser le choix INSTDIR= en modifiant les paramètres de InstallBin, l’onglet Général, l’entrée de ligne de commande Build. INSTDIR par défaut est le répertoire /Apache2. Si vous voulez seulement une compilation de test (sans installation), vous pouvez construire le projet BuildBin à la place.

Les fichiers de projet .dsp sont distribués au format Visual Studio 6.0 (98). C++ visuel 5.0 (97) les reconnaîtra. Les utilisateurs de Visual Studio 2002 (.NET) et versions ultérieures doivent convertir les fichiers Apache.dsw plus les fichiers .dsp en fichiers Apache.sln plus les fichiers .msproj. Assurez-vous de reconvertir à nouveau le fichier .msproj si son fichier source .dsp change ! C’est vraiment trivial, il suffit d’ouvrir Apache.dsw dans l’E VC++ 7.0 et de le reconvertir.

Il y a une faille dans le.conversion vcproj de.fichiers dsp. devenv.exe analysera mal l’indicateur /D pour les drapeaux RC contenant des /D’fins entre guillemets longs qui contiennent des espaces. Commande:

perl srclib\apr\build\cvtdsp.pl -2005

convertira les drapeaux /D pour les drapeaux RC pour utiliser une syntaxe alternative et analysable; malheureusement, cette syntaxe n’est pas prise en charge par Visual Studio 97 ou son exportation.fichiers mak. Ces drapeaux /D sont utilisés pour passer la description longue de la mod_apachemodule.so fichiers partagés.génération d’identificateur de version de ressource rc.

Construction avec OpenSSL 1.1.0 et versions ultérieures En raison de la différence dans la structure de construction d’OpenSSL à partir de la version 1.1.0, vous devrez convertir les fichiers dsp affectés avec cvtdsp.pl à partir de 1,6 avril ou plus. Commande:

perl srclib\apr\build\cvtdsp.pl -ossl11

Les utilisateurs de Visual Studio 2002 (.NET) et versions ultérieures doivent également utiliser le menu de génération, la boîte de dialogue du Gestionnaire de configuration pour décocher les composants Debug et Release Modules de solution abs, mod_deflate et mod_ssl, ainsi que tous les composants commençant par apr_db*. Ces modules sont construits en appelant nmake, ou l’EDI directement avec la cible BinBuild, qui construit ces modules conditionnellement si les répertoires srclib openssl et/ou zlib existent, et en fonction du paramètre des variables d’environnement DBD_LIST et DBM_LIST.

Exportation de la ligne de commande.les fichiers mak

exportés .mak posent plus de problèmes, mais ils sont nécessaires pour que les utilisateurs de Visual C++ 5.0 construisent mod_ssl, abs (ab avec prise en charge SSL) et / ou mod_deflate. Le .les fichiers mak prennent également en charge une gamme plus large de distributions de chaînes d’outils C++, telles que Visual Studio Express.

Vous devez d’abord créer tous les projets afin de créer toutes les cibles dynamiques générées automatiquement, afin que les dépendances puissent être analysées correctement. Construisez l’ensemble du projet à partir de Visual Studio 6.0(98)E, en utilisant la cible BuildAll, puis utilisez le menu Projet Exporter pour tous les makefiles (en vérifiant « avec dépendances ».) Exécutez la commande suivante pour corriger les chemins absolus en chemins relatifs afin qu’ils se construisent n’importe où:

perl srclib\apr\build\fixwin32mak.pl

Vous devez taper cette commande dans le répertoire de niveau supérieur de l’arborescence des sources httpd. Chaque fichier de projet .mak et .dep dans le répertoire courant et ci-dessous sera corrigé, et les horodatages ajustés pour refléter le .dsp.

Vérifiez toujours les fichiers .mak et .dep générés pour le SDK de plate-forme ou d’autres chemins de fichiers locaux spécifiques à la machine. Le répertoire DevStudio\Common\MSDev98\bin\ (VC6) contient un fichier sysincl.dat, qui répertorie toutes les exceptions. Mettez à jour ce fichier (y compris les chemins d’accès en avant et en barre oblique inverse, tels que sys/time.h et sys\time.h) pour ignorer ces dépendances plus récentes. L’inclusion de chemins d’installation locaux dans un fichier .mak distribué entraînera l’échec complet de la génération.

Si vous contribuez à un correctif qui révise les fichiers de projet, nous devons valider les fichiers de projet au format Visual Studio 6.0. Les modifications doivent être simples, avec un minimum d’indicateurs de compilation et de liaison pouvant être reconnus par tous les environnements Visual Studio.

Installation

Une fois Apache compilé, il doit être installé dans le répertoire racine du serveur. La valeur par défaut est le répertoire \Apache2, du même lecteur.

Pour créer et installer automatiquement tous les fichiers dans le répertoire de dossier souhaité, utilisez l’une des commandes nmake suivantes:

nmake /f Makefile.win installr INSTDIR=dir
nmake /f Makefile.win installd INSTDIR=dir

L’argument dir à INSTDIR fournit le répertoire d’installation; il peut être omis si Apache doit être installé dans \Apache22 (du lecteur actuel).

Avertissement concernant la construction d’Apache à partir de l’arborescence de développement

Remarque seuls les fichiers .dsp sont maintenus entre les versions release. Les fichiers .mak ne sont PAS régénérés, en raison de l’énorme perte de temps de l’examinateur. Par conséquent, vous ne pouvez pas compter sur les commandes NMAKE ci-dessus pour créer des fichiers de projet .dsp révisés, sauf si vous exportez vous-même tous les fichiers .mak à partir du projet. Cela n’est pas nécessaire si vous créez à partir de l’environnement Microsoft Developer Studio.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.