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?
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.
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.
Respuestas:
debería ser posible usando el comando
Espero que ayude
fuente
otra forma es:
fuente
Hacer
Consulte este enlace para obtener más información: http://www.electrictoolbox.com/article/apache/restart-apache/
fuente
apachectl 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.
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 -k
como comando, y para systemd, el comando se reemplaza porhttpd -k
apachectl -k graceful
ohttpd -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
ohttpd -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
fuente
httpd -k graceful
solo admitehttpd -k restart
:httpd /?
=>-k restart : tell running Apache to do a graceful restart