Apache sous Windows
Apache 1.3 fonctionne sous Windows NT 4.0 et 2000, mais ses performances sous Windows 95 et 98 ne sont pas garanties. Si vous utilisez Windows 95, vous devez installer la mise à jour « Winsock2 » avant de lancer Apache. Cette mise à jour est disponible à l’URL http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/SWUNetworkingTools/W95Sockets2. Attention : les mises à jour de l’accès réseau à distance version 1.2 (MS DUN) contiennent un Winsock2 qui n’est absolument pas suffisant ; vous devez réinstaller la mise à jour de Winsock2 après avoir installé l’accès réseau à distance de Windows 95. Les utilisateurs de Windows 98, NT (Service Pack 3 et suivants) et 2000 n’ont rien besoin de faire : ces versions sont distribuées avec Winsock2.
Apache 2 fonctionnera avec Windows 2000 et NT mais, au moment où nous mettons sous presse, il ne marche pas sous Windows 95, 98 ou Me. Du point de vue d’Apache, toutes ces versions sont les mêmes sauf, qu’avec NT, Apache peut être lancé comme un service (à partir d’Apache 1.3.14, il existe des émulateurs permettant de fournir des services NT sous les autres versions de Windows). Les performances sous Win32 ne sont pas aussi bonnes que sous Unix, mais elles s’amélioreront sûrement au cours des mois à venir.
Comme Win32 est bien plus cohérent que la nébuleuse des familles Unix, et comme il charge les modules supplémentaires comme des DLL au lieu de les intégrer à la compilation, l’Apache Group peut facilement offrir la distribution standard sous forme d’un binaire exécutable précompilé. Allez sur http://www.apache.org/dist/httpd et cliquez sur la version de votre choix. Vous téléchargerez alors un fichier .exe auto-extractible : placez-le, par exemple, dans c:\temp et lancez-le à l’aide de la commande Exécuter du menu Démarrer.
Cet exécutable créera un répertoire pour Apache, C:\Program Files\Apache par défaut. Toute manipulation d’Apache Win32 se fait à partir d’une fenêtre MS-DOS ; ouvrez-en une et faites :
> cd c:\<répertoire apache>
> dir
et vous devriez voir une liste comme celle-ci :
Le volume dans le lecteur C n’a pas de nom
Le numéro de série du volume est 294C-14EE
Répertoire de C:\apache
. <REP> 21/05/98 7:27 .
.. <REP> 21/05/98 7:27 ..
DEISL1 ISU 12,818 29/07/98 15:12 DeIsL1.isu
HTDOCS <REP> 29/07/98 15:12 htdocs
MODULES <REP> 29/07/98 15:12 modules
ICONS <REP> 29/07/98 15:12 icons
LOGS <REP> 29/07/98 15:12 logs
CONF <REP> 29/07/98 15:12 conf
CGI-BIN <REP> 29/07/98 15:12 cgi-bin
ABOUT_~ 1 12,921 15/07/98 13:31 ABOUT_APACHE
ANNOUN~1 3,090 18/07/98 23:50 Announcement
KEYS 22,763 15/07/98 13:31 KEYS
LICENSE 2,907 31/03/98 13:52 LICENSE
APACHE EXE 3,072 19/07/98 11:47 Apache.exe
APACHE~1 DLL 247,808 19/07/98 12:11 ApacheCore.dll
MAKEFI~1 TMP 21,025 15/07/98 18:03 Makefile.tmpl
README 2,109 01/04/98 13:59 README
README~1 TXT 2,985 30/05/98 13:57 README-NT.TXT
INSTALL DLL 54,784 19/07/98 11:44 install.dll
_DEISREG ISR 147 29/07/98 15:12 _DEISREG.ISR
_ISREG32 DLL 40,960 23/04/97 1:16 _ISREG32.DLL
13 fichier(s) 427 389 octets
8 répertoire(s) 520 835 072 octets libres
Apache.exe est l’exécutable et ApacheCore.dll est le plat de résistance de l’ensemble. Les sous-répertoires importants sont :
conf
Répertoire contenant le fichier de configuration d’Apache.
logs
Répertoire contenant les fichiers journaux.
htdocs
Répertoire où l’on placera les ressources à fournir aux clients. Le manuel d’Apache se trouve dans un sous-répertoire de cette arborescence.
modules
Répertoire contenant les DLL des modules dynamiques.
Modules
Avec Windows, Apache se télécharge normalement sous la forme d’un exécutable précompilé. Les modules essentiels sont intégrés dans cet exécutable, les autres sont chargés à l’exécution (s’ils sont nécessaires) : les considérations sur la taille de l’exécutable deviennent donc moins urgentes. Les DLL fournies (elles ont, en fait, l’extension .so, et non .dll ) se trouvent dans le répertoire .apache/modules et sont :
mod_auth_anon.so
mod_auth_dbm.so
mod_auth_digest.so
mod_cern_meta.so
mod_dav.so
mod_dav_fs.so
mod_expires.so
mod_file_cache.so
mod_headers.so
mod_info.so
mod_mime_magic.so
mod_proxy.so
mod_rewrite.so
mod_speling.so
mod_status.so
mod_unique_id.so
mod_usertrack.so
mod_vhost_alias.so
mod_proxy_connect.so
mod_proxy_ftp.so
mod_proxy_http.so
mod_access.so
mod_actions.so
mod_alias.so
mod_asis.so
mod_auth.so
mod_autoindex.so
mod_cgi.so
mod_dir.so
mod_env.so
mod_imap.so
mod_include.so
mod_isapi.so
mod_log_config.so
mod_mime.so
mod_negotiation.so
mod_setenvif.so
mod_userdir.so
Nous présenterons plus tard ces différents modules.
Compilation d’Apache sous Win32
Si vous souhaitez écrire vos propres modules (voir le chapitre 21), vous aurez besoin du code source : vous pouvez l’installer en choisissant une installation personnalisée de la version Win32, ou le télécharger depuis le miroir Apache le plus proche de chez vous (voir http://www.apache.org/dyn/closer.cgi) sous la forme d’un fichier .tar.gz contenant la distribution Unix classique. Ce fichier peut ensuite être décompacté dans un répertoire approprié en utilisant, par exemple, WinZip32 qui sait gérer les formats de fichiers .tar, .gz et .zip. Vous aurez également besoin de Visual C++ Version 6 de Microsoft (il existe des scripts de conversion pour les utilisateurs de MSVC 5 car les modifications ne sont pas compatibles). Lorsque les sources et le compilateur sont en place, ouvrez une fenêtre MS-DOS et placez-vous dans le répertoire src. Pour compiler une version avec les informations de débogage et l’installer dans le répertoire \Apache, faites :
> nmake /f Makefile.nt _apached
> nmake /f Makefile.nt installd
ou, si vous préférez compiler une version définitive :
> nmake /f Makefile.nt _apacher
> nmake /f Makefile.nt installr
Avec ces commandes, vous créerez et installerez les fichiers suivants dans \Apache :
Apache.exe
L’exécutable.
ApacheCore.dll
La bibliothèque partagée principale.
Modules\ApacheModule*.dll
Sept modules facultatifs.
\conf
Un répertoire de configuration vide.
\logs
Un répertoire vide pour les fichiers journaux.
Les directives décrites dans le reste de ce livre sont les mêmes pour Unix et Win32, mis à part le fait que, dans le second cas, Apache peut charger des modules sous forme de DLL. Ceux-ci doivent être activés dans le fichier de configuration du serveur par la directive LoadModule. Si vous souhaitez, par exemple, disposer des informations sur l’état du serveur, vous devrez ajouter la ligne suivante :
LoadModule status_module modules/ApacheModuleStatus.dll
Apache pour Win32 peut également charger des extensions ISAPI ( Internet Server Applications ). Vous remarquerez qu’à chaque fois qu’un nom de fichier est indiqué dans le fichier de configuration, la version Win32 utilise une barre de fraction ( / ) comme sous Unix et non un anti-slash ( \ ) comme sous MS-DOS ou Windows. Comme quasiment tout le reste de ce livre s’applique à Win32 et à Unix sans distinction, nous utiliserons systématiquement les barres de fraction ( / ) dans les noms de fichiers.