Démarrage d'Apache
Sous Windows, Apache est habituellement lancé en tant que
service. Pour plus de détails, voir Démarrer Apache en tant
que service.
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.
Arrêt et redémarrage
httpd
apachectl
Comment Apache démarre
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é, il effectue quelques opérations préliminaires
comme ouvrir ses fichiers de log, puis 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. A cet effet, 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
Erreurs en cours de démarrage
Si un problème fatal survient pendant le démarrage
d'Apache, ce dernier 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 :
- Une tentative de démarrage du serveur avec un port privilégié sans
être connecté root
- Une tentative de démarrage du serveur alors qu'une autre instance
d'Apache ou un autre serveur web est déjà associé au même port.
Pour plus d'instructions de dépannage, consultez la
FAQ Apache.
Lancement au démarrage du système
Si vous souhaitez que votre serveur soit automatiquement
disponible 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
soit 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, et il suffit en général d'installer
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.
Informations supplémentaires
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.