Serveur Apache HTTP Version 2.2
Apache est habituellement lancé en tant que service sous Windows NT, 2000 et XP, ou comme application en mode console sous Windows 9x et ME. Pour plus de détails, voir Démarrer Apache en tant que service et Démarrer Apache comme Application en mode console.
Sous Unix, le programme httpd
est lancé en mode démon et s'exécute de manière permanente en
arrière-plan pour gérer les requêtes. Ce document décrit comment invoquer
httpd
.
Si la directive Listen
spécifiée dans le fichier de configuration est à sa valeur par défaut
de 80 (ou tout autre port inférieur à 1024), il est nécessaire de
posséder les privilèges root pour pouvoir démarrer apache, et lui
permettre d'être associé à ce port privilégié. Lorsque le serveur est
démarré, après avoir effectué quelques opérations préliminaires
comme ouvrir ses fichiers de log, il lance plusieurs processus
enfants qui ont pour rôle d'écouter et de répondre aux
requêtes des clients. Le processus httpd
principal
continue à s'exécuter sous l'utilisateur root, tandis que les processus
enfants s'exécutent sous un utilisateur aux privilèges restreints.
Ceci s'effectue par la voie du
Module Multi-Processus (MPM).
Il est recommandé d'utiliser le script de contrôle
apachectl
pour invoquer l'exécutable
httpd
. Avant d'invoquer le binaire
httpd
, ce script définit certaines variables
d'environnement nécessaires pour permettre à
httpd
de fonctionner correctement sous certains systèmes
d'exploitation.
apachectl
accepte des arguments de ligne de commande,
ainsi toute option de httpd
peut aussi être utilisée avec
apachectl
. Vous pouvez aussi éditer directement le
script apachectl
en modifiant la variable
HTTPD
située en début de script pour spécifier la
localisation du binaire httpd
et tout argument de ligne
de commande que vous souhaitez voir systématiquement présent.
La première chose qu'effectue httpd
quand il est
invoqué est de localiser et lire le fichier de configuration
httpd.conf
. La localisation de ce fichier est définie à la
compilation, mais il est possible d'en spécifier une autre à
l'exécution en utilisant l'option de ligne de commande -f
comme suit:
/usr/local/apache2/bin/apachectl -f
/usr/local/apache2/conf/httpd.conf
Si tout se passe bien pendant le démarrage, le serveur va se dissocier
du terminal et l'invite de commande réapparaîtra presque immédiatement.
Ceci indique que le serveur a démarré et est en cours d'exécution.
À partir de ce moment, vous pouvez utiliser votre navigateur pour vous connecter
au serveur et afficher la page de test située dans le répertoire défini
par la directive DocumentRoot
.
Si Apache rencontre un problème fatal pendant le démarrage, il va
afficher un message décrivant le problème sur la console ou
enregistrer ces informations dans le fichier défini par la directive
ErrorLog
avant de quitter.
Un des messages d'erreur les plus courants est "Unable
to bind to Port ...
". Ce message d'erreur est habituellement
provoqué par:
Pour plus d'instructions de dépannage, consultez la FAQ Apache.
Si vous souhaitez que votre serveur continue de fonctionner après
un redémarrage du système, vous devez ajouter un appel à
apachectl
à vos
fichiers de démarrage système (en général rc.local
ou un
fichier dans un répertoire rc.N
), ce qui démarrera Apache sous
l'utilisateur root. Avant de faire ceci, assurez-vous que votre serveur
est correctement configuré en ce qui concerne la sécurité et les
restrictions d'accès.
Le script apachectl
est conçu pour fonctionner
comme un script d'initialisation SysV standard; il accepte les arguments
start
, restart
, et stop
et les traduit en signaux appropriés pour
httpd
. Il est ainsi souvent possible d'installer
simplement un lien vers
apachectl
dans le répertoire d'initialisation approprié.
Mais prenez soin de vérifier les besoins exacts de votre système
en la matière.
Des informations supplémentaires à propos des options en ligne de
commande de httpd
et apachectl
ainsi que d'autres programmes support inclus dans la distribution
sont disponibles sur la page
Le serveur et ses programmes support.
Il existe aussi une documentation sur tous les modules inclus dans la distribution Apache
et les directives
qu'ils supportent.