Wenn Sie Änderungen an der Apache-Konfigurationsdatei httpd.conf oder einer der anderen enthaltenen Konfigurationsdateien vorgenommen haben B. die Dateien vhosts.d, müssen Sie den Apache-Dienst neu laden, damit die Änderungen wirksam werden. Über die Befehlszeile tun Sie dies mit dem Befehl apachectl. Die genaue Position dieses Befehls hängt von der verwendeten Unix- oder Linux-Variante (z. B. Fedora, OSX, FreeBSD, Slackware, Mandrake, SUSE) und den Einstellungen für die Kompilierungszeit ab. In der Regel ist er jedoch unter / usr / sbin / apachectl zugänglich p>
Apache ordnungsgemäß neu starten
Ein Beispiel für einen ordnungsgemäßen Neustart von Apache finden Sie unten:
/usr/sbin/apachectl graceful
Beachten Sie, dass Sie entweder als root ausgeführt werden müssen oder den Befehl“ sudo „verwenden müssen, um diesen Befehl auszuführen .
Wenn Apache noch nicht ausgeführt wird, wird es gestartet. Wenn es bereits ausgeführt wird, wird es mit den neuen Änderungen neu geladen, aber aktive Verbindungen werden nicht abgebrochen. Dies bedeutet, dass jeder, der gerade etwas herunterlädt, es weiterhin herunterladen kann.
Ausführen einer Konfiguration Zuerst testen
Vor dem Neustart des Apache-Dienstes werden die Konfigurationsdateien überprüft, um sicherzustellen, dass sie gültig sind. Wenn ein Fehler vorliegt, wird der Fehler angezeigt und der Apache-Dienst wird mit den alten Einstellungen weiter ausgeführt. Sie müssen Ihre Einstellungen korrigieren, bevor Sie erneut versuchen, einen Neustart durchzuführen.
Sie können die Einstellungen auch einfach überprüfen, ohne Apache wie folgt neu zu starten:
/usr/sbin/apachectl configtest
Hiermit wird die Datei httpd.conf überprüft und gemeldet, ob die Syntax der Datei lautet gültig oder nicht. Eine Liste der Fehler wird angezeigt, einschließlich der Zeilennummern, falls vorhanden. Auf diese Weise können Probleme leicht eingegrenzt werden.
Verfügbare Optionen für den Befehl apachectl
Nachfolgend sind alle aufgeführt verfügbare Optionen, die an den Befehl apachectl übergeben werden können. Dieser Text stammt aus der Apachectl-Manpage.
Apachectl-Start: Starten Sie den Apache-Daemon. Gibt einen Fehler aus, wenn es bereits ausgeführt wird.
apachectl stop: Stoppt den Apache-Daemon.
apachectl restart: Startet den Apache-Daemon neu, indem Sie ihm ein SIGHUP senden. Wenn der Dämon nicht ausgeführt wird, wird er gestartet. Dieser Befehl überprüft die Konfigurationsdateien automatisch per Configtest, bevor der Neustart gestartet wird, um sicherzustellen, dass Apache nicht stirbt.
fullstatus: Zeigt einen vollständigen Statusbericht von mod_status an. Damit dies funktioniert, müssen Sie mod_status auf Ihrem Server aktiviert haben und einen textbasierten Browser wie lynx auf Ihrem System verfügbar haben. Die für den Zugriff auf den Statusbericht verwendete URL kann durch Bearbeiten der STATUSURL-Variablen im Skript festgelegt werden.
apachectl status: Zeigt einen kurzen Statusbericht an. Ähnlich wie bei der Option fullstatus, außer dass die Liste der aktuell zugestellten Anforderungen weggelassen wird.
apachectl graceful: Startet den Apache-Daemon ordnungsgemäß, indem er ihm einen SIGUSR1 sendet. Wenn der Dämon nicht ausgeführt wird, wird er gestartet. Dies unterscheidet sich von einem normalen Neustart dadurch, dass derzeit offene Verbindungen nicht abgebrochen werden. Ein Nebeneffekt ist, dass alte Protokolldateien nicht sofort geschlossen werden. Dies bedeutet, dass bei Verwendung in einem Protokollrotationsskript eine erhebliche Verzögerung erforderlich sein kann, um sicherzustellen, dass die alten Protokolldateien geschlossen werden, bevor sie verarbeitet werden. Dieser Befehl überprüft die Konfigurationsdateien automatisch über configtest, bevor der Neustart gestartet wird, um sicherzustellen, dass Apache nicht stirbt.
apachectl configtest: Führen Sie einen Syntaxtest für Konfigurationsdateien aus. Es analysiert die Konfigurationsdateien und meldet entweder Syntax Ok oder detaillierte Informationen zu dem jeweiligen Syntaxfehler.
apachectl help: Zeigt eine kurze Hilfemeldung an
Update 19. März 2007
Ich habe diesen Artikel ursprünglich für Apache 1.3 geschrieben und als ich Gentoo Linux und OSX verwendet habe, um Seiten mit Apache bereitzustellen. Auf meinen aktuellen openSUSE-Computern, auf denen Apache 2.2 ausgeführt wird, gibt es kein Apachectl-Programm mehr. Anstelle des obigen Befehls können Sie stattdessen den folgenden sehr ähnlichen Befehl und die folgenden Optionen ausführen:
/etc/init.d/apache2 start|stop|reload|restart|configtest
/etc/init.d/apache2
wird ausgeführt Die eigene Ausgabe gibt eine Hilfemeldung aus, in der die verschiedenen unten aufgeführten Optionen aufgeführt sind:
Start – Start von httpd
Startssl – Start von httpd mit -DSSL
stop – stop httpd (SIGTERM an übergeordnetes Element senden)
try-restart – stoppe httpd und wenn dies erfolgreich ist (dh wenn es zuvor ausgeführt wurde), starte es wieder.
Status – Überprüfen Sie, ob httpd ausgeführt wird.
Neustart – Stoppen Sie httpd, wenn es ausgeführt wird. httpd
reload | graceful starten – Führen Sie einen ordnungsgemäßen Neustart durch, indem Sie einen SIGUSR1 senden, oder starten Sie, wenn nicht ausgeführt wird.
configtest – Führen Sie einen Konfigurationssyntax-Test durch.
Extrem-Configtest – Versuchen Sie, httpd als Niemand auszuführen (erkennt mehr Fehler durch Laden der Konfiguration, kann jedoch keine SSL-Zertifikate lesen).
Probe – Probe für Wenn ein Nachladen erforderlich ist, geben Sie das Argument an, das für ein Nachladen erforderlich ist. (durch Vergleichen von conf-Dateien mit dem PID-Datei-Zeitstempel)
Vollserverstatus – Dump eines vollständigen Statusbildschirms; erfordert lynx oder w3m und mod_status aktiviert
Serverstatus – einen kurzen Statusbildschirm ausgeben; erfordert lynx oder w3m und mod_status aktiviert
Hilfe – dieser Bildschirm