Ce document explique comment compiler, installer, configurer et exécuter Apache 1.3a1 (ou ultérieure) sous Microsoft Windows. Notez qu'au jour d'aujourd'hui, le support de Windows est entièrement expérimental, est n'est recommandé que pour les utilisateurs expérimentés. Le groupe Apache ne peut garantir que le logiciel fontionnera entièrement conformément à sa documentation, ni même du tout. Si vous identifiez des bogues, ou souhaîtez contribuer quelque en soit la manière, utilisez notre page de rapports d'erreurs.
Avertissement : Apache sur NT n'a pas été optimisé en termes de performances. Apache cependant fonctionne parfaitement, et est totalement fiable sur les plates-formes Unix. Nous améliorerons les performances d'Apache sous NT au fur et à mesure. Nous prions les personnes s'amusant à tester comparativement les performances de serveurs Web d'appuyer leur comparaison sur les versions d'Apache tournant sur une machine Unix tel que Solaris, FreeBSD, ou sous Linux.
La version 1.3b2 d'Apache nécessite les composants suivants :
* Apache peut probablement tourner sous Windows NT 3.5.1, mais ceci n'a pas encore été testé.
Apache 1.3b2 n'est actuellement disponible que sous forme de fichiers sources. Des versions futures proposeront des version binaires préconstruites pour les utilisateurs ne disposant pas de compilateur (ce qui représente tout de même la majorité des utilisateurs de Windows), la distribution actuelle nécessite Microsoft Visual C++ 5.0 ou une version postérieure.
Cette documentation suppose une bonne connaissance opérationnelle de Microsoft Windows, Microsoft Visual C++, et du serveur Apache (dans sa version Unix).
Des informations sur la dernière version d'Apache peut être trouvé sur le serveur Web d'Apache à l'adresse : http://www.apache.org/. Celui-ci listera la distribution courante, toute version alpha ou beta-test ultérieure, et donnera des détails sur les sites miroirs et les sites ftp "anonymes" concernant Apache.
Vous pourrez télécharger Apache 1.3b2 ou une distribution ultérieure de plusierus façons, dont une version compressée sous WinZip (.zip
). Bien que celle-ci contienne les mêmes fichiers que les autres formes (.tar.gz
et .tar.Z
), cette forme est recommandée pour une utilisation sous Windows, dans la mesure où tous les fichiers qui y sont inclus le sont avec les "fin de lignes" compatibles Windows. Les autres archives peuvent comporter de nombreux fichiers codés avec des "fin de lign" au format Unix, qui ne fonctionneront pas sous Windows.
La compilation d'Apache nécessite une licence correctement installée de Microsoft Visual C++ 5.0. Il sera plus facile de compiler en utilisant les outils en mode ligne de commande (nmake, etc...). Consultez le manuel VC++ pour savoir comment installer ces outils.
D'abord, décompressez la distribution d'Apache dans un répertoire créé à cet usage. Activez l'outil en ligne de commande, et changez le contexte en visant le sous-répertoire src
de la distribution obtenue après décompactage.
Le fichier "makefile" maître contenant les instructions de compilation d'Apache s'appelle Makefile.nt
. Pour compiler Apache, utilisez l'une de ces commandes :
nmake /f Makefile.nt _apacher
(construction finale)
nmake /f Makefile.nt _apached
(construction pour déboggage)
Elles compilent toutes deux Apache. La deuxième inclura en plus des instructions de déboggage dans l'exécutable résultant, rendant plus facile le test et la recherche d'éventuels bogues.
Apache peut aussi être compilé dans l'environnement de développement VC++ Visual Studio. Bien que la compilation d'Apache par cette méthode ne soit pas aussi triviale, elle rend plus facile la modification du source d'Apache, et permet de compiler même si les outils en ligne de commande ne sont pas installés.
Les fichiers de projet (.DSP
) sont inclus pour chacune des parties d'Apache. Trois projets doivent être construits pour qu'Apache puisse tourner : Apache.dsp
, ApacheCore.dsp
et os/win32/ApacheOS.dsp
. Il sera aussi nécessaire de compiler la librairie de fonctions d'expressions régulières (dans regex
) en utilisant le fichier Makefile fourni à cet effet. Le sous-répertoire src/win32
contient tous les fichiers de projet pour les modules optionnels (voir ci-dessous).
Une fois qu'Apache a été compilé, il devra être installé dans le futur répertoire
ServerRoot. Par défaut, ce répertoire est \Apache
, pris sur le disque courant. Il est possible d'utiliser un autre répertoire, mais dans ce cas, les fichiers devront être installés manuellement.
Pour installer les fichiers automatiquement dans le répertoire \Apache, utilisez l'une des commandes nmake suivantes (voir ci-avant) :
nmake /f Makefile.nt installr
(construction finale)
nmake /f Makefile.nt installd
(construction pour déboggage)
Ces commandes installeront les éléments suivants :
\Apache\Apache.exe
- l'exécutable Apache
\Apache\ApacheCore.dll
- Les librairies partagées principales d'Apache
\Apache\modules\ApacheModule*.dll
- Les modules optionnels (par défaut) (7 fichiers)
\Apache\conf
- Un répertoire de configuration vide
\Apache\logs
- Un répertoire de trace vide
Si vous ne disposez pas de l'outil "nmake", ou souhaitez installer les fichiers dans un autre répertoire, assurez vous de respecter ces conventions de nommage.
La première étape est de constituer les fichiers de configuration d'Apache. Les fichiers de configuration pard éfaut pour la version Windows sont situés dans le sous-répertoire conf
de la distribution d'Apache Windows, et s'appellent httpd.conf-dist-win
, access.conf-dist-win
et srm.conf-dist-win
. Déplacez ces fichiers dans le répertoire \Apache\conf
, et renommez-les respectivement httpd.conf
, access.conf
et srm.conf
.
La configuration d'Apache sous Windows se fait à peu près de la même manière que pour la version UNIX, et de ce fait, la plupart des spécifications décrites dans la documentation d'Apache sont applicables. Quelques points sont malgré tout différents, ou nouveaux :
Comme la version d'Apache pour Windows est multitâche, elle ne crée pas de processus séparés pour chaque requête, contrairement à la version UNIX. De ce fait, les directives de gestion de processus sont distinctes :
StartServers - Cette directive indique combien de processus le serveur est sensé lancer. Contrairement à Unix, il ne pourra être exécuté jamais plus de processus que le nombre indiqué, et un seul d'entre eux pourra être exploité à la fois (les autres sont mis "en réserve" au cas où le serveur actif meurt). La valeur par défaut recommandée est StartServers 3
.
MaxRequestsPerChild - Comme pour la directive UNIX, ceci contrôle le nombre maximum de requête qu'un processus traitera avant de s'arrêter. Cependant, contrairement à UNIX, le processus sert toutes les requêtes qui lui arrivent, et non seulement une seule. Il est donc recommandé de fixer ce nombre à une valeur assez élevée. Toutefois, la valeur préconisée pour ce paramètres est MaxRequestsPerChild 0
, qui ne fixe pas de limite au nombre de requêtes qu'un processus peut traiter.
ThreadsPerChild - Cette directive est nouvelle, et indique au serveur combien de tâches il peut utiliser. Il s'agit bien évidemment du nombre maximal de connexions que le serveur peut simultanément traiter. Assurez vous que ce nombre est suffisament élevé compte tenu du trafic de votre site. La valeur par défaut recommandée est ThreadsPerChild 50
.
\Apache\modules
. Pour activer ces modules, (ou d'autres éventuellement), la nouvelle directive LoadModule
devra apparaître dans le fichier de configuration. Par exemple, pour activer le module d'état, utilisez la directive suivante (en plus des directives d'activation habituelles dans le fichier access.conf
):
LoadModule status_module modules/ApacheModuleStatus.dll
Plus d'informations sur la création de nouveaux modules dans la page Création de modules
DLL.
Apache sait aussi charger des extenions ISAPI (c-à-d., des applications Internet Server), telles que celle qui utilisent les IIS Microsoft, et pour d'autres serveurs sous Windows. Plus d'informations à ce sujet.
Une fois qu'Apache est correctement configuré, il est pratiquement prêt à tourner. Cependant, nous vous recommandons de copier au préalable les sous-répertoires icons
et htdocs
de la distribution Apache dans le répertoire
\Apache
. Le deuxième est particulièrement important, dans la mesure où il contient le répertoire racine par défaut pour les documents (celui que le serveur dessert juste après l'installation et sauf mention contraire explicite dans le fichier de configuration).
Apache peut être exécuté sous deux modes, directement en ligne de commande, ou comme un service Windows NT. Pour lancer Apache à partir de la ligne de commande, écrivez la ligne suivante :
C:\Apache> apache -s
Apache s'exécute alors, et restera actif tant que le processus n'est pas tué. Pour lancer Apache comme un service Windows NT, utilisez la syntaxe suivante :
C:\Apache> apache -i
puis ouvrez le panneau de contrôle Services de Windows NT, et démarrez le "service Apache".
Si vous installez les ressources d'Apache dans un répêrtoire ServerRoot d'un autre nom
que \Apache
, vous devrez utiliser l'option de ligne de commande -f
pour spécifier explicitement où se trouve le fichier httpd.conf, ou l'option -d
pour expliciter le répertoire ServerRoot.
Version française © Valery Fremaux / EISTI 1998