182 votes

Comment recharger la configuration d'apache pour un site sans redémarrer apache?

J'ai modifié la variable AllowOverride pour l'un de mes sites dans le répertoire sites-enabled. Comment puis-je recharger la nouvelle configuration sans redémarrer apache ? Est-ce possible ?

8 votes

2 votes

Il semble que toutes les réponses sont incorrectes.

1 votes

Pour clarifier, les réponses ci-dessous sont valables lors du rechargement — bien que les commandes diffèrent pour les différentes distributions (par exemple, apachectl dans CentOs ou apache2 dans Ubuntu). Mais l'objectif est de le faire sans redémarrer. Tous redémarrent, mais les solutions gracieuses (SIGUSR1) attendent que aucune connexion ouverte ne soit rompue.

227voto

olly_uk Points 3365

Il devrait être possible en utilisant la commande

sudo /etc/init.d/apache2 reload

19 votes

Je suis assez sûr que ce n'est pas correct. En regardant le script init.d d'un serveur Ubuntu, recharge se réfère à un redémarrage en douceur. Cela signifie que la recharge est en fait un redémarrage, mais en douceur. À mon avis, Apache ne peut pas être rechargé sans interrompre le service.

8 votes

La réponse d'Aruman est la bonne. La plupart des scripts d'initialisation Apache envoient un SIGHUP qui équivaut à "apachectl restart", ce que l'OP a spécifiquement demandé d'éviter. D'autres scripts d'initialisation Apache envoient un SIGUSR1 qui équivaut à "apachectl graceful", ce qui est également un redémarrage, mais effectué de manière plus gracieuse, et c'est ce que la réponse d'Aruman fournit.

0 votes

@SteffenNielsen Je pense que tu as raison... Certains se contenteront d'utiliser un équilibreur de charge, de désactiver celui à redémarrer, de le redémarrer, de gérer la version de la base de données, puis de faire la même chose pour l'autre serveur/conteneur apache. K8s élimine certains de ces problèmes.

147voto

scowtmaster Points 166

Une autre façon serait:

sudo service apache2 reload

42voto

Aruman Points 366

Faire

apachectl -k graceful

Vérifiez ce lien pour plus d'informations : http://www.electrictoolbox.com/article/apache/restart-apache/

24 votes

Cela redémarrera le démon Apache httpd, ce que la question demandait expressément d'éviter.

9 votes

@cs01 Où avez-vous lu que le démon httpd sera redémarré? Tout ce que j'ai lu sur le lien fourni dans la réponse dit des choses comme 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 dans la mesure où les connexions ouvertes actuellement ne sont pas interrompues.

5 votes

La première phrase de la documentation que vous avez postée dit exactement cela, n'est-ce pas?

12voto

carkod Points 137

Si vous utilisez un serveur Ubuntu, vous pouvez utiliser systemctl

systemctl reload apache2

0 votes

Sur ubuntu 18 (au moins), c'est un alias de /usr/sbin/apachectl graceful

10voto

jeffmcneill Points 15

Mis à jour pour Apache 2.4, pour non-systemd (par exemple, CentOS 6.x, Amazon Linux AMI) et pour systemd (par exemple, CentOS 7.x) :

Il y a deux façons de faire recharger la configuration du processus apache, selon ce que vous souhaitez faire avec ses threads actuels, soit les enjoindre de sortir quand ils sont inactifs, soit les tuer directement.

Notez qu'Apache recommande d'utiliser apachectl -k comme commande, et pour systemd, la commande est remplacée par httpd -k

apachectl -k graceful ou httpd -k graceful

Apache conseillera à ses threads de sortir quand ils sont inactifs, puis apache rechargera la configuration (il ne se ferme pas de lui-même), cela signifie que les statistiques ne sont pas réinitialisées.

apachectl -k restart ou httpd -k restart

C'est similaire à un arrêt, dans le sens où le processus tue ses threads, mais ensuite le processus rechargera le fichier de configuration, plutôt que de se tuer lui-même.

Source : https://httpd.apache.org/docs/2.4/stopping.html

1 votes

Apache 2.4.39 (win) ne prend pas en charge httpd -k graceful seul httpd -k restart : httpd /? => -k restart : indique à Apache en cours d'exécution de faire un redémarrage en douceur

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X