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 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 compiler mod_ssl
ou le projet
abs.exe
, qui n'est autre que 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.
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 beaucoup 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'exportez 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.