Serveur HTTP Apache Version 2.5
Ce document explique l'installation, la configuration et le lancement d'Apache 2.0 sous Novell NetWare 6.0 et les versions ultérieures. Si vous trouvez une bogue, ou voulez tout simplement contribuer de quelque manière que ce soit, utilisez s'il vous plait notre page des rapports de bogues.
La page des rapports de bogues et la liste de diffusion dev-httpd ne doivent pas être utilisées pour poser des questions à propos de la configuration ou du lancement d'Apache. Avant de soumettre un rapport de bogue ou une question, consultez ce document, la FAQ ou tout autre sujet de la documentation en rapport avec votre problème. Si vous n'avez toujours pas résolu votre problème, postez votre question dans le newsgroup novell.devsup.webserver, où de nombreux utilisateurs d'Apache sont prêts à répondre à toutes les nouvelles et obscures questions à propos de l'utilisation d'Apache sous Netware.
Dans la majeure partie de ce document, vous êtes sensé avoir installé Apache à partir d'une distribution binaire. Si vous voulez compiler Apache vous-même (par exemple pour aider au développement, ou pour rechercher des bogues), reportez-vous à la section traitant de la Compilation d'Apache pour Netware ci-dessous.
Apache 2.0 nécessite NetWare 6.0 service pack 3 et supérieurs pour fonctionner. Si vous utilisez un service pack antérieur à SP3, vous devez installer les dernières Bibliothèques Netware pour C (LibC).
Vous trouverez les service packs Netware ici.
Apache 2.0 pour NetWare peut aussi fonctionner dans un environnement NetWare 5.1, à partir du moment où le dernier service pack ou la dernière version des Bibliothèques Netware pour C (LibC) ont été installés. ATTENTION : Apache 2.0 pour NetWare n'a pas été testé dans cet environnement car il n'a pas été conçu pour ce dernier.
Les informations à propos de la dernière version d'Apache sont disponibles sur le site web d'Apache à http://www.apache.org/. Vous y trouverez la version courante, des versions alpha ou bêta-test plus récentes, ainsi que des sites miroirs et des sites FTP anonymes. Les distributions binaires des dernières versions d'Apache 2.0 pour NetWare sont disponibles ici.
Il n'existe pas actuellement de programme d'installation d'Apache pour Netware. Si vous installez Apache 2.0 pour NetWare à partir des sources, vous devrez copier les fichiers sur le serveur manuellement.
Suivez ces instructions pour installer Apache sous Netware à
partir de la distribution binaire (en supposant que vous effectuez
l'installation dans sys:/apache2
) :
SYS:
(vous pouvez cependant l'installer dans
tout volume)httpd.conf
et définissez les
directives ServerRoot
et
ServerName
avec les valeurs
correctes des chemins de fichiers qui correspondent à la
configuration de votre serveur.SYS:/APACHE2
au chemin de recherche, par
une commande du style : SEARCH ADD
SYS:\APACHE2
Suivez ces instructions pour installer Apache pour Netware
manuellement à partir de votre propre répertoire de sources (en
supposant que vous effectuez l'installation dans
sys:/apache2
) :
Apache2
dans un volume Netware.APACHE2.NLM
, APRLIB.NLM
dans
SYS:/APACHE2
.BIN
dans
SYS:/APACHE2
.HTDIGEST.NLM
, HTPASSWD.NLM
,
HTDBM.NLM
, LOGRES.NLM
,
ROTLOGS.NLM
dans SYS:/APACHE2/BIN
.CONF
dans
SYS:/APACHE2
.HTTPD-STD.CONF
dans le
répertoire SYS:/APACHE2/CONF
et renommez-le en
HTTPD.CONF
.MIME.TYPES
,
CHARSET.CONV
et MAGIC
dans le répertoire
SYS:/APACHE2/CONF
.\HTTPD-2.0\DOCS\ICONS
dans
SYS:/APACHE2/ICONS
.\HTTPD-2.0\DOCS\MANUAL
dans
SYS:/APACHE2/MANUAL
.\HTTPD-2.0\DOCS\ERROR
dans
SYS:/APACHE2/ERROR
.\HTTPD-2.0\DOCS\DOCROOT
dans
SYS:/APACHE2/HTDOCS
.SYS:/APACHE2/LOGS
sur le
serveur.SYS:/APACHE2/CGI-BIN
sur le
serveur.SYS:/APACHE2/MODULES
et
copiez tous les modules nlm dans le répertoire
modules
.HTTPD.CONF
, et recherchez
toutes les marques @@Value@@
afin de les remplacer
par les valeurs appropriées.SYS:/APACHE2
au chemin de recherche, par
une commande du style : SEARCH ADD
SYS:\APACHE2
Outre le volume par défaut SYS
, Apache peut être
installé dans tout autre volume.
Au cours du processus d'installation, l'ajout du mot-clé
"install" à la ligne de commande du makefile va provoquer la
construction d'une distribution complète sous forme d'un paquetage
dans le sous-répertoire DIST
. Vous pouvez simplement
installer Apache en copiant la distribution créée précédemment à la
racine d'un volume Netware (voir Compilation
d'Apache pour NetWare ci-dessous).
Pour démarrer Apache, tapez simplement apache
dans
la console. Ceci aura pour effet de charger Apache dans l'espace
d'adressage du système d'exploitation. Si vous préférez charger
Apache dans un espace d'adressage protégé, vous pouvez spécifier cet
espace d'adressage à l'aide de l'instruction de chargement suivante
:
load address space = apache2 apache2
Cette instruction va charger Apache dans un espace d'adressage appelé apache2. Il est possible d'exécuter plusieurs instances simultanées d'Apache sous Netware, en chargeant chacune d'entre elles dans son propre espace d'adressage protégé.
Une fois démarré, Apache écoute le port 80 (à moins que vous
n'ayez modifié la directive Listen
dans les fichiers de
configuration). Pour vous connecter au serveur et afficher la page
par défaut, lancez un navigateur et entrez le nom du serveur ou son
adresse IP. Vous devriez voir une page de bienvenue, et un lien vers
le manuel Apache. Si rien ne se produit, ou si vous obtenez un
message d'erreur, consultez le fichier error_log
dans
le répertoire logs
.
Lorsque votre installation de base fonctionne, vous devez la
configurer correctement en éditant les fichiers du répertoire
conf
.
Pour arrêter une instance d'Apache s'exécutant dans l'espace d'adressage du système d'exploitation, entrez simplement dans la console :
unload apache2
ou
apache2 shutdown
Si Apache s'exécute dans un espace d'adressage protégé, spécifiez cet espace d'adressage dans l'instruction d'arrêt :
unload address space = apache2 apache2
Lorsqu'on travaille avec Apache, il est important de savoir comment il trouve ses fichiers de configuration. Vous pouvez spécifier un fichier de configuration sur la ligne de commande de deux manières :
-f
spécifie un chemin vers un fichier de
configuration particulier
apache2 -f "vol:/nom-serveur/conf/fich-conf.conf"
apache -f test/test.conf
Dans ces cas, la directive ServerRoot
doit être correctement définie
dans le fichier de configuration.
Si vous ne spécifiez pas de nom de fichier de configuration avec
l'option -f
, Apache utilisera le nom de fichier codé en
dur dans le serveur, en général conf/httpd.conf
.
L'invocation d'Apache avec l'option -V
indiquera ce nom
comme valeur de l'étiquette SERVER_CONFIG_FILE
. Apache
va ensuite déterminer son ServerRoot
en effectuant les tests
suivants, dans cet ordre
ServerRoot
via une option
-C
switch.-d
.La racine du répertoire d'installation codée en dur dans le
serveur est en général sys:/apache2
. L'invocation
d'Apache avec l'option -V
indiquera ce chemin comme
valeur de l'étiquette HTTPD_ROOT
.
Apache 2.0 pour Netware comporte un jeu d'options de ligne de
commande permettant d'afficher ou de modifier certaines
caractéristiques de l'instance du serveur web en cours d'exécution.
Ces options ne sont disponibles que lorsqu'Apache est en cours
d'exécution. Chacune de ces options doit être précédée du mot-clé
APACHE2
.
Par défaut, ces options sont passées à l'instance d'apache s'exécutant dans l'espace d'adressage du système d'exploitation. Pour passer une option à une instance d'Apache spécifique s'exécutant dans un espace d'adressage protégé, ajouter le paramètre -p suivi du nom de l'espace d'adressage. Pour plus d'informations, tapez "apache2 Help" sur la ligne de commande.
Apache lit en général ses fichiers de configuration dans le
répertoire conf
. Ces fichiers sont les mêmes que ceux
de la version Unix, mais quelques directives sont différentes sous
Netware. Voir la Documentation Apache pour
l'ensemble des directives disponibles.
Les principales différences propres à Apache pour NetWare sont :
Comme Apache pour Netware est une application multithread, elle n'utilise pas de processus séparé pour chaque requête, comme c'est le cas pour certaines implémentations sous Unix. Il n'y a que des threads en cours d'exécution : un thread parent, et plusieurs threads enfants ou worker qui traitent les requêtes.
En conséquence, les directives de gestion des "processus" sont différentes :
MaxConnectionsPerChild
- comme sous
Unix, cette directive contrôle le nombre maximum de connexions
qu'un worker thread peut traiter avant de s'arrêter. Avec la
valeur par défaut MaxConnectionsPerChild 0
,
le thread va pouvoir traiter un nombre illimité de requêtes.
Cette valeur est recommandée sous Netware, à moins que vous
n'ayez des raisons particulières de la modifier.
StartThreads
-
Cette directive indique au serveur le nombre de threads qu'il
doit lancer au démarrage. Il est recommandé de conserver la
valeur par défaut StartThreads 50
.
MinSpareThreads
-
Cette directive indique au serveur le nombre de worker threads
additionnels qu'il doit lancer si le nombre de threads inactifs
tombe en dessous de cette valeur. Il est recommandé de conserver la
valeur par défaut MinSpareThreads 10
.
MaxSpareThreads
-
Cette directive indique au serveur qu'il doit commencer à
arrêter des worker threads si le nombre de threads inactifs
passe au dessus de cette valeur. Il est recommandé de conserver
la valeur par défaut MaxSpareThreads 100
.
MaxThreads
-
Cette directive impose un nombre maximum de worker threads. Il
est recommandé de conserver la valeur par défaut
ThreadsPerChild 250
.
ThreadStackSize
-
Cette directive indique au serveur la taille de la pile à
utiliser pour un worker thread individuel. Il est recommandé de
conserver la valeur par défaut ThreadStackSize
65536
.
Les directives qui acceptent des noms de fichiers comme
arguments ne doivent pas utiliser des noms de fichiers Unix,
mais des noms de fichiers Netware. Cependant, comme Apache
utilise des noms de style Unix en interne, on doit utiliser des
slashes et non des antislashes. Il est recommandé de préfixer
tous les chemins de fichiers racines par un nom de volume. Si ce
dernier est omis, Apache supposera que le volume est
SYS:
, ce qui n'est pas forcément correct.
Apache pour Netware a la possibilité de charger des modules
en cours d'exécution, sans avoir à recompiler le serveur. Si
Apache est compilé avec les options par défaut, il va installer
de nombreux modules optionnels dans le répertoire
\Apache2\modules
. Pour les activer, ou en activer
d'autres, on doit utiliser la directive LoadModule
. Par exemple, pour
activer le module status, ajoutez la ligne suivante :
LoadModule status_module modules/status.nlm
Des informations à propos de la création de modules chargeables sont aussi disponibles.
CGIMapExtension
-
Cette directive associe une extension de fichier CGI à un
interpréteur de script.SecureListen
-
Cette directive active le chiffrement SSL pour un port
spécifique.NWSSLTrustedCerts
-
Cette directive permet d'ajouter des certificats de confiance
pouvant être utilisés pour créer des connexions sécurisées vers
des serveurs mandataires.NWSSLUpgradeable
-
Cette directive permet de faire passer en SSL une connexion
initialisée sur les adresse IP et Port spécifiés.La compilation d'Apache nécessite MetroWerks CodeWarrior 6.x ou
supérieur. Une fois compilé, Apache peut être installé à la racine
de tout volume Netware. Le répertoire d'installation par défaut est
sys:/Apache2
.
Avant de démarrer Apache, vous devez remplir le répertoire
conf
. Copiez le fichier HTTPD-STD.CONF
depuis le répertoire conf
de la distribution et
renommez-le en HTTPD.CONF
. Editez le fichier
HTTPD.CONF
en recherchant les repères
@@Value@@
, et remplacez ces derniers par la valeur
appropriée. Copiez de même les fichiers conf/magic
et
conf/mime.types
. Vous pouvez aussi construire une
distribution complète en ajoutant le mot-clé install
lors de l'invocation des makefiles.
Les outils de développement suivants sont nécessaires pour la compilation d'Apache pour Netware :
awk.exe
.NOVELLLIBC
avec le chemin des bibliothèques Netware
pour C SDK ; par exemple : Set
NOVELLLIBC=c:\novell\ndk\libc
METROWERKS
avec le chemin de votre compilateur
Metrowerks CodeWarrior ; par exemple : Set
METROWERKS=C:\Program Files\Metrowerks\CodeWarrior
C:\Program Files\Metrowerks\CodeWarrior
, vous
n'avez pas besoin de définir cette variable.LDAPSDK
avec le chemin des bibliothèques LDAP pour C ; par exemple :
Set
LDAPSDK=c:\Novell\NDK\cldapsdk\NetWare\libc
ZLIBSDK
avec le chemin du code source de la bibliothèque Zlib ; par
exemple : Set ZLIBSDK=D:\NOVELL\zlib
PCRESDK
avec le chemin d'installation du code source de la bibliothèque
PCRE ; par exemple :
Set PCRESDK=D:\NOVELL\pcre
AP_WORK
avec le chemin du code source de httpd
.
Set AP_WORK=D:\httpd-2.0.x
APR_WORK
avec le chemin du code source d'apr
; en général
\httpd\srclib\apr
, mais le projet APR peut se
trouver en dehors de la structure des répertoires de httpd.
Set APR_WORK=D:\apr-1.x.x
APU_WORK
avec le chemin du code source d'apr-util
; en
général \httpd\srclib\apr-util
, mais le projet
APR-UTIL peut se trouver en dehors de la structure des
répertoires de httpd. Set
APU_WORK=D:\apr-util-1.x.x
gmake.exe
) ont bien été inclus dans la variable
d'environnement système PATH
.\httpd-2.0
et compilez les utilitaires précompilés à l'aide de la commande
"gmake -f nwgnumakefile prebuild
". Cette cible va
créer le répertoire \httpd-2.0\nwprebuild
, et y
copier tous les utilitaires nécessaires au franchissement des
étapes suivantes de la compilation.\httpd-2.0\nwprebuild\GENCHARS.nlm
et
\httpd-2.0\nwprebuild\DFTABLES.nlm
vers le volume
SYS:
d'un serveur Netware et exécutez-les à l'aide
des commandes suivantes :
SYS:\genchars > sys:\test_char.h
SYS:\dftables sys:\chartables.c
test_char.h
et
chartables.c
vers le répertoire
\httpd-2.0\os\netware
de la machine où s'effectue
la compilation.\httpd-2.0
et compilez Apache à l'aide de la commande "gmake -f
nwgnumakefile
". Vous pouvez créer un répertoire pour la
distribution en ajoutant le paramètre install à la commande ;
par exemple :
gmake -f nwgnumakefile install
gmake -f nwgnumakefile
Compile les versions
de distribution de tous les binaires et les copie dans un
répertoire \release
.
gmake -f nwgnumakefile DEBUG=1
Compile les versions
de débogage de tous les binaires et les copie dans un
répertoire \debug
.
gmake -f nwgnumakefile install
Crée une
distribution complète d'Apache avec les binaires, la
documentation et les fichiers support dans un répertoire
\dist\Apache2
.
gmake -f nwgnumakefile prebuild
Compile tous
les utilitaires précompilés et les copie dans le répertoire
\nwprebuild
.
gmake -f nwgnumakefile installdev
Même effet
que l'option install, mais en plus, les répertoires
\lib
et \include
sont créés dans le
répertoire de destination, et les en-têtes et fichiers d'import
y sont copiés.
gmake -f nwgnumakefile clean
Supprime tous
les fichiers objets et les binaires de la zone de compilation
\release.o
, ou \debug.o
si
DEBUG
a été défini.
gmake -f nwgnumakefile clobber_all
Même effet que clean, mais en plus, le répertoire de la distribution est supprimé s'il existe.
EXPERIMENTAL
:
Set EXPERIMENTAL=1
USE_STDSOCKETS
:
Set USE_STDSOCKETS=1
Pour fournir les services SSL, Apache pour Netware utilise par
défaut le module intégré mod_nw_ssl
. Ce module ne
fournit que les services SSL implémentés par le système
d'exploitation Netware lui-même pour gérer tous les chiffrements
pour un port donné. Cependant, on peut aussi utiliser mod_ssl de
la même manière que sur les autres plate-formes.
Afin de pouvoir compiler mod_ssl pour la plate-forme Netware, les bibliothèques OpenSSL doivent être disponibles. Elles peuvent être installées de la manière suivante :
NetWare/set_env.bat
, et
effectuez toutes modifications nécessaires des chemins des
outils et utilitaires en fonction de votre environnement de
développement.
Netware\set_env netware-libc
Netware\build netware-libc
Netware\build netware-libc nw-nasm enable-mdc2 enable-md5
OSSLSDK
avec le chemin absolu de
la racine du répertoire du code source d'openssl, et
définissez WITH_MOD_SSL à 1.
Set OSSLSDK=d:\openssl-0.9.8x
Set WITH_MOD_SSL=1