Apache'yi yeniden başlatmadan bir site için apache yapılandırmasını yeniden yükleme


141

Sitelerim etkin dizindeki web sitelerimden biri için AllowOverride değişkenini düzenledim . Apache'yi yeniden başlatmadan yeni yapılandırmayı nasıl yeniden yüklerim? Mümkün mü?



1
Tüm cevaplar yanlış gibi görünüyor.
Tigran

Yanıtlar:


182

komutunu kullanarak mümkün olmalı

sudo /etc/init.d/apache2 reload

umarım yardımcı olur


11
Bunun doğru olmadığından eminim. Bir Ubuntu sunucusunun init.d komut dosyasına bakıldığında, yeniden yükleme işlemi zarif yeniden başlatmayı ifade eder. Bu, yeniden yüklemenin aslında bir yeniden başlatma olduğu, ancak zarifçe olduğu anlamına gelir. Bence apache hizmeti kesintiye uğratmadan yeniden yüklenemiyor.
SteffenNielsen

4
Aruman'ın cevabı doğru. Çoğu Apache başlangıç ​​komut dosyası, OP'nin özellikle kaçınmasını istediği 'apachectl restart' a eşdeğer olan SIGHUP gönderir. Diğer Apache init komut dosyaları, 'apachectl graceful' ile eşdeğer olan, aynı zamanda bir yeniden başlatma olan ancak daha zarif bir şekilde yapılan SIGUSR1'i gönderir ve Aruman'ın cevabı budur.
Bryan Larsen

@SteffenNielsen Bence haklısın ... Bazıları bir yük dengeleyici kullanmak, yeniden başlatılacak olanı devre dışı bırakmak, yeniden başlatmak, db sürümüyle uğraşmak, sonra diğer apache sunucusu / konteyneri için aynısını yapmakla iyi olacak. K8s bu sorunların bazılarını ortadan kaldırıyor.
Ray Foss

1
Tamam, işte olan şey, ana apache2 süreci değişmiyor, ancak çocuklar veya işçiler (doğru terminolojiyi bilmiyorum) hepsi yeniden başlıyor, bu PID'ler aslında değişiyor.
Elijah Lynn

1
Ve bu durumda zarif olduğunu düşünüyorum, bu çocuk işçilerin öldürülmeden ve yeniden doğmadan önce isteklerini yerine getirmeyi bitirdikleri anlamına gelir.
Elijah Lynn


28

Yapmak

apachectl -k graceful

Daha fazla bilgi için bu bağlantıyı kontrol edin: http://www.electrictoolbox.com/article/apache/restart-apache/


18
Bu, sorunun özellikle kaçınılması istenen Apache httpd arka plan programını yeniden başlatacaktır.
cs01

6
@ cs01 httpd arka plan programının yeniden başlatılacağını nereden okuyorsunuz? Yanıtta verilen bağlantıda okuduğum her şey şöyle diyorapachectl 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
Gönderdiğiniz belgelerin ilk cümlesi sadece bunu söylüyor, değil mi?
cs01

3
@ cs01 Yeniden başlatma konusunda neden endişelendiklerini anlamanız gerekiyor. Bu belirtilmedi, ama benim tahminim bağlantıların kendi içinde yeniden başlatma yerine iptal edilmesini istemiyorlar. Zarif bir yeniden başlatma, çoğu durumda bu iyi olur. Uzun ömürlü bağlantılar varsa bu belki bir sorun olabilir. Ayrıca, zarif bir yeniden başlatmanın yaptığı ana işlemi yeniden başlatmak olduğu için iyi bir yeniden başlatma tanımına da ihtiyacınız vardır. Bu nedenle Tyler Collier'ın cevabı son derece meşru.
krad

7

Apache 2.4, systemd olmayanlar (ör. CentOS 6.x, Amazon Linux AMI) ve systemd (ör. CentOS 7.x) için güncellendi:

Mevcut iş parçacıklarıyla ne yapmak istediğinize bağlı olarak, apache işleminin yapılandırmayı yeniden yüklemesinin iki yolu vardır; boşta kaldıklarında çıkmayı veya doğrudan öldürmeyi önerirler.

Apache'nin apachectl -kkomut olarak kullanılmasını önerdiğini ve systemd için komutunhttpd -k

apachectl -k graceful veya httpd -k graceful

Apache, iş parçacıklarının boştayken çıkmasını önerir ve ardından apache yapılandırmayı yeniden yükler (kendiliğinden çıkmaz), bu istatistiklerin sıfırlanmadığı anlamına gelir.

apachectl -k restart veya httpd -k restart

Bu, işlemin iş parçacıklarını öldürmesi için durdurmaya benzer, ancak daha sonra işlem, kendisini öldürmek yerine yapılandırma dosyasını yeniden yükler.

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


apache 2.4.39 (win) httpd -k gracefulsadece desteklemez httpd -k restart: httpd /?=>-k restart : tell running Apache to do a graceful restart
Andreas Dietrich
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.