Si vous avez apporté des modifications au fichier de configuration Apache httpd.conf ou à l’un des autres fichiers de configuration inclus tels que les fichiers vhosts.d, vous devez recharger le service Apache pour que les modifications prennent effet. À partir de la ligne de commande, vous faites cela avec la commande apachectl. L’emplacement exact de cette commande varie selon la variante Unix ou Linux que vous utilisez (par exemple Fedora, OSX, FreeBSD, Slackware, Mandrake, SUSE) et les paramètres de compilation, mais il est généralement accessible à / usr / sbin / apachectl
Redémarrage progressif d’Apache
Un exemple de redémarrage progressif d’Apache est illustré ci-dessous:
/usr/sbin/apachectl graceful
Notez que vous devrez soit exécuter en tant que root ou utiliser la commande » sudo « pour exécuter cette commande .
Si Apache n’est pas déjà en cours d’exécution, il sera démarré. S’il est déjà en cours d’exécution, il se rechargera avec les nouvelles modifications mais n’interrompra pas les connexions actives, ce qui signifie que quiconque est en train de télécharger quelque chose continuera à pouvoir le télécharger.
Exécution d’une configuration testez d’abord
Avant de redémarrer le service Apache, une vérification sera effectuée sur les fichiers de configuration pour s’assurer qu’ils sont valides. S’il y a une erreur dans ces derniers, l’erreur sera affichée et le service Apache continuera à fonctionner en utilisant les anciens paramètres. Vous devez corriger vos paramètres avant de tenter de redémarrer à nouveau.
Vous pouvez également simplement vérifier les paramètres sans redémarrer Apache comme ceci:
/usr/sbin/apachectl configtest
Cela vérifiera le fichier httpd.conf et indiquera si la syntaxe du fichier est valide ou non. Une liste des erreurs s’affichera, y compris les numéros de ligne s’il y en a. Cela permet d’isoler facilement les problèmes.
Options disponibles pour la commande apachectl
Voici toutes les options disponibles qui peuvent être passées à la commande apachectl. Ce texte provient de la page de manuel apachectl.
apachectl start: Démarre le démon Apache. Donne une erreur s’il est déjà en cours d’exécution.
apachectl stop: arrête le démon Apache.
apachectl restart: Redémarre le démon Apache en lui envoyant un SIGHUP. Si le démon n’est pas en cours d’exécution, il est démarré. Cette commande vérifie automatiquement les fichiers de configuration via configtest avant de lancer le redémarrage pour s’assurer qu’Apache ne meurt pas.
fullstatus: affiche un rapport d’état complet de mod_status. Pour que cela fonctionne, vous devez avoir mod_status activé sur votre serveur et un navigateur basé sur du texte tel que lynx disponible sur votre système. L’URL utilisée pour accéder au rapport d’état peut être définie en éditant la variable STATUSURL dans le script.
apachectl status: affiche un bref rapport d’état. Similaire à l’option fullstatus, sauf que la liste des requêtes en cours de traitement est omise.
apachectl graceful: redémarre gracieusement le démon Apache en lui envoyant un SIGUSR1. Si le démon n’est pas en cours d’exécution, il est démarré. Cela diffère d’un redémarrage normal en ce que les connexions actuellement ouvertes ne sont pas abandonnées. Un effet secondaire est que les anciens fichiers journaux ne seront pas fermés immédiatement. Cela signifie que s’il est utilisé dans un script de rotation de journal, un délai substantiel peut être nécessaire pour s’assurer que les anciens fichiers journaux sont fermés avant de les traiter. Cette commande vérifie automatiquement les fichiers de configuration via configtest avant de lancer le redémarrage pour s’assurer qu’Apache ne meurt pas.
apachectl configtest: Exécutez un test de syntaxe du fichier de configuration. Il analyse les fichiers de configuration et renvoie soit Syntaxe Ok, soit des informations détaillées sur l’erreur de syntaxe particulière.
apachectl help: Affiche un court message d’aide .
Mise à jour du 19 mars 2007
J’ai écrit cet article à l’origine pour Apache 1.3 et lorsque j’utilisais Gentoo Linux et OSX pour servir des pages avec Apache. Sur mes machines openSUSE actuelles qui exécutent Apache 2.2, il n’y a plus de programme apachectl. Au lieu de la commande ci-dessus, vous pouvez exécuter la commande et les options très similaires suivantes à la place:
/etc/init.d/apache2 start|stop|reload|restart|configtest
Exécution de /etc/init.d/apache2
sur son propre produit un message d’aide pour détailler les différentes options énumérées ci-dessous:
start – start httpd
startssl – start httpd avec -DSSL
arrêter – arrêter httpd (envoyer SIGTERM au parent)
essayer-redémarrer – arrêter httpd et si cela réussit (c’est-à-dire s’il était en cours d’exécution auparavant), démarrer à nouveau.
status – vérifier si httpd est en cours d’exécution
redémarrer – arrêter httpd s’il est en cours d’exécution; start httpd
reload | graceful – faire un redémarrage progressif en envoyant un SIGUSR1 ou démarrer s’il n’est pas en cours d’exécution
configtest – faites un test de syntaxe de configuration
extreme-configtest – essayez d’exécuter httpd en tant que personne (détecte plus d’erreurs en chargeant réellement la configuration, mais ne peut pas lire les certificats SSL)
sonde – sonde pour la nécessité d’un rechargement, donnez l’argument qui est requis pour un rechargement. (en comparant les fichiers de configuration avec l’horodatage pidfile)
full-server-status – affiche un plein écran d’état; nécessite lynx ou w3m et mod_status activé
server-status – afficher un court écran d’état; nécessite lynx ou w3m et mod_status activé
aide – cet écran