Serveur Apache HTTP Version 2.4
Il y a de nombreux points importants � conna�tre avant de compiler Apache pour Microsoft Windows. Avant de commencer, lisez le document Utiliser Apache avec Microsoft Windows.
Pour 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.