Wie füge ich virtuelle Hosts hinzu, ohne Apache neu starten zu müssen?

15

Wenn ich das Tutorial über das Erstellen / Hinzufügen virtueller Hosts lese, ist der letzte Satz immer ungefähr so:

... jetzt starte Apache neu und du bist fertig!

Jetzt haben viele (die meisten | alle) Webhosts ein Panel, in dem Sie neue virtuelle Hosts erstellen können, die fast sofort aktiviert werden ... und ich bin sicher, dass sie Apache nicht nur zu meinem Vergnügen neu gestartet haben (was Hunderten von anderen Benutzern Unannehmlichkeiten bereitet) !

Wie kann man die Apache-Einstellungen ändern, virtuelle Hosts hinzufügen usw. und die neuen Einstellungen neu laden, ohne den Apache-Server neu zu starten?

Augustin
quelle

Antworten:

20
$ /etc/init.d/httpd reload

Dies führt eine Konfigurationssyntaxprüfung durch und veranlasst Apache, seine Konfigurationsdateien neu zu laden, ohne den Datenverkehr zu unterbrechen.

EEAA
quelle
Oh cool! Ich bin neu in Bezug auf die Start | Stopp | Neustart-Optionen, aber nicht in Bezug auf das Neuladen. Vielen Dank.
augustin
1
Einige Änderungen erfordern auch force-reloadeher als reload.
ℝaphink
2
und stellen Sie sicher, dass Sie vor dem erneuten Laden einen: service httpd configtest ausführen - es werden nicht alle Konfigurationsfehler angezeigt, aber einige werden abgefangen.
Jason Tan
2
@Jason, zumindest unter Debian / Ubuntu, führt der obige Befehl einen Konfigurationstest aus (und stellt sicher, dass er sauber beendet wird), bevor er das ausstellt apache2ctl graceful.
EEAA
10

Die meisten Linux-Distributionen haben ein kleines Hilfsprogramm namens apachectl oder apache2ctl, mit dem Sie die Konfiguration einfach neu laden können. Dadurch werden auch alle neuen virtuellen Hosts aktiviert. Der gesuchte Befehl lautet apache2ctl graceful

wolfgangsz
quelle
Vielen Dank. Ich werde sie auf jeden Fall überprüfen. Wie wirkt sich das auf die andere Lösung vergleichen: <code> $ /etc/init.d/httpd reload </ code>
augustin
3
@augustin: Das Init-Skript ist ein Wrapper um apache2ctl. Ich würde lieber das Init-Skript verwenden, da es möglicherweise auch apache2 als bestimmten Benutzer startet, den Sie kennen müssen, um es zu verwenden apache2ctl. Vertrauen Sie auf die Tools, die mit Ihrer Distribution
geliefert werden