Cómo volver a cargar la configuración de apache para un sitio sin reiniciar apache

141

He editado la variable AllowOverride para uno de mis sitios web en el directorio habilitado para sitios . ¿Cómo recargo la nueva configuración sin reiniciar Apache? ¿Es posible?

hpn
fuente
66
apache2 reload superuser.com/questions/192686/...
Cristiano Smorra
1
Parece que todas las respuestas son incorrectas.
Tigran

Respuestas:

182

debería ser posible usando el comando

sudo /etc/init.d/apache2 reload

Espero que ayude

olly_uk
fuente
11
Estoy bastante seguro de que esto no es correcto. Mirando el guión init.d de un servidor Ubuntu, la recarga se refiere al reinicio elegante. Esto significa que la recarga es de hecho un reinicio, pero con gracia. Mi opinión es que apache no se puede recargar sin interrumpir el servicio.
SteffenNielsen
44
La respuesta de Aruman es la correcta. La mayoría de los scripts de inicio de Apache envían SIGHUP, que es equivalente a 'apachectl restart', que el OP solicitó específicamente evitar. Otros scripts de inicio de Apache envían SIGUSR1, que es equivalente a 'apachectl graceful', que también es un reinicio, pero se hace con más gracia, y es lo que proporciona la respuesta de Aruman.
Bryan Larsen
@SteffenNielsen Creo que tienes razón ... Algunos estarán bien con el uso de un equilibrador de carga, deshabilitando el que se reiniciará, reiniciando, lidiando con el control de versiones de db, y luego haciendo lo mismo para el otro servidor / contenedor apache. K8s elimina algunos de estos problemas.
Ray Foss
1
De acuerdo, esto es lo que sucede, el proceso principal de apache2 no cambia, pero los niños o los trabajadores (no sé la terminología correcta) se reinician, esos PID cambian de hecho.
Elijah Lynn el
1
Y creo que agraciado en este caso solo significa que esos niños trabajadores terminan de atender sus solicitudes antes de ser asesinados y reaparecidos.
Elijah Lynn el
114

otra forma es:

sudo service apache2 reload
felixmpa
fuente
28

Hacer

apachectl -k graceful

Consulte este enlace para obtener más información: http://www.electrictoolbox.com/article/apache/restart-apache/

Aruman
fuente
18
Esto reiniciará el demonio httpd de Apache, que la pregunta específicamente pidió evitar.
cs01
66
@ cs01 ¿Dónde lee que se reiniciará el demonio httpd? Todo lo que leo en el enlace proporcionado en la respuesta dice cosas comoapachectl graceful: Gracefully restarts the Apache daemon by sending it a SIGUSR1. If the daemon is not running, it is started. This differs from a normal restart in that currently open connections are not aborted.
Tyler Collier
55
La primera oración de la documentación que publicó dice exactamente eso, ¿no es así?
cs01
3
@ cs01 Debe comprender por qué están preocupados por un reinicio. Eso no se especifica, pero supongo que no quieren abortar las conexiones, en lugar de reiniciar en sí mismo. Un reinicio elegante hará esto bien en la mayoría de los casos. Si hay conexiones de larga duración, esto puede ser un problema. También necesita una buena definición de reinicio, ya que todo el reinicio elegante es reinicializar el proceso padre, es decir, el pid no cambia, mientras que un reinicio normal derriba todo el árbol de procesos y genera uno nuevo. Por lo tanto, la respuesta de Tyler Collier es perfectamente legítima.
krad
7

Actualizado para Apache 2.4, para no systemd (por ejemplo, CentOS 6.x, Amazon Linux AMI) y para systemd (por ejemplo, CentOS 7.x):

Hay dos formas de hacer que el proceso de apache vuelva a cargar la configuración, dependiendo de lo que desee hacer con sus hilos actuales, ya sea aconsejar salir cuando esté inactivo o matarlos directamente.

Tenga en cuenta que Apache recomienda usarlo apachectl -kcomo comando, y para systemd, el comando se reemplaza porhttpd -k

apachectl -k graceful o httpd -k graceful

Apache le indicará a sus hilos que salgan cuando está inactivo, y luego apache vuelve a cargar la configuración (no se cierra), esto significa que las estadísticas no se restablecen.

apachectl -k restart o httpd -k restart

Esto es similar a detener, ya que el proceso elimina sus subprocesos, pero luego el proceso vuelve a cargar el archivo de configuración, en lugar de suicidarse.

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

jeffmcneill
fuente
apache 2.4.39 (win) no httpd -k gracefulsolo admite httpd -k restart: httpd /?=>-k restart : tell running Apache to do a graceful restart
Andreas Dietrich el