Como recarregar a configuração do apache para um site sem reiniciar o apache
141
Editei a variável AllowOverride para um dos meus sites no diretório ativado por sites . Como recarregar a nova configuração sem reiniciar o apache? É possível?
Tenho certeza de que isso não está correto. Olhando no script init.d de um servidor Ubuntu, recarregar refere-se à reinicialização normal. Isso significa que recarregar é de fato uma reinicialização, mas normalmente. Minha opinião é que o apache não pode ser recarregado sem interromper o serviço.
precisa saber é o seguinte
4
A resposta de Aruman é a correta. A maioria dos scripts de inicialização do Apache envia SIGHUP, que é equivalente a 'apachectl restart', que o OP pediu especificamente para evitar. Outros scripts de inicialização do Apache enviam SIGUSR1, que é equivalente a 'apachectl graceful', que também é uma reinicialização, mas é feita com mais graciosidade, e é o que a resposta de Aruman fornece.
Bryan Larsen
@SteffenNielsen Eu acho que você está certo ... Alguns concordarão em usar um balanceador de carga, desativando o que será reiniciado, reiniciando, lidando com o db versioning e fazendo o mesmo com o outro servidor / contêiner apache. O K8s acaba com alguns desses problemas.
Ray Foss
1
Ok, aqui está o que acontece, o processo principal do apache2 não muda, mas os filhos ou trabalhadores (não sei a terminologia correta) são reiniciados, esses PIDs realmente mudam.
Elias Lynn
1
E acho gracioso, neste caso, apenas significa que essas crianças trabalhadoras terminam de atender seus pedidos antes de serem mortas e reaparecidas.
Isso reiniciará o daemon httpd do Apache, que a pergunta especificamente evitada.
CS01
6
@ cs01 Onde você lê que o daemon httpd será reiniciado? Tudo o que li no link fornecido na resposta diz coisas como: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.
Tyler Collier
5
A primeira frase da documentação que você postou diz exatamente isso, não é?
CS01
3
@ cs01 Você precisa entender por que eles estão preocupados com a reinicialização. Isso não está especificado, mas meu palpite é que eles não desejam que as conexões sejam abortadas, em vez de reiniciar por si só. Um reinício normal faz isso muito bem na maioria dos casos. Se houver conexões duradouras, isso talvez seja um problema. Você também precisa de uma boa definição de reinicialização, pois tudo o que ocorre normalmente é reinicializar o processo pai, ou seja, o pid não muda, enquanto uma reinicialização normal destrói toda a árvore do processo e gera uma nova. Portanto, a resposta de Tyler Collier é perfeitamente legítima.
krad
7
Atualizado para Apache 2.4, para non-systemd (por exemplo, CentOS 6.x, Amazon Linux AMI) e para systemd (por exemplo, CentOS 7.x):
Há duas maneiras de fazer com que o processo apache recarregue a configuração, dependendo do que você deseja fazer com seus encadeamentos atuais, seja para sair quando estiver ocioso ou eliminando-os diretamente.
Observe que o Apache recomenda usar apachectl -kcomo comando e, para systemd, o comando é substituído porhttpd -k
apachectl -k graceful ou httpd -k graceful
O Apache aconselha seus threads a sair quando ociosos e, em seguida, o apache recarrega a configuração (não sai automaticamente), isso significa que as estatísticas não são redefinidas.
apachectl -k restart ou httpd -k restart
É semelhante à parada, pois o processo mata seus encadeamentos, mas, em seguida, recarrega o arquivo de configuração, em vez de se matar.
Respostas:
deve ser possível usando o comando
espero que ajude
fonte
outra maneira é:
fonte
Faz
Verifique este link para obter mais informações: http://www.electrictoolbox.com/article/apache/restart-apache/
fonte
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.
Atualizado para Apache 2.4, para non-systemd (por exemplo, CentOS 6.x, Amazon Linux AMI) e para systemd (por exemplo, CentOS 7.x):
Há duas maneiras de fazer com que o processo apache recarregue a configuração, dependendo do que você deseja fazer com seus encadeamentos atuais, seja para sair quando estiver ocioso ou eliminando-os diretamente.
Observe que o Apache recomenda usar
apachectl -k
como comando e, para systemd, o comando é substituído porhttpd -k
apachectl -k graceful
ouhttpd -k graceful
O Apache aconselha seus threads a sair quando ociosos e, em seguida, o apache recarrega a configuração (não sai automaticamente), isso significa que as estatísticas não são redefinidas.
apachectl -k restart
ouhttpd -k restart
É semelhante à parada, pois o processo mata seus encadeamentos, mas, em seguida, recarrega o arquivo de configuração, em vez de se matar.
Fonte: https://httpd.apache.org/docs/2.4/stopping.html
fonte
httpd -k graceful
apenashttpd -k restart
:httpd /?
=>-k restart : tell running Apache to do a graceful restart