Snippet

Apache Restart, Start und Stop (httpd)

Wie kann man den Webserver Apache neu starten unter Debian / Ubuntu Linux oder ähnlichen Unix-basierten Betriebssystemen?

von Oli Feiler · 21. Februar 2016

Wie kann man den Webserver Apache neu starten unter Debian / Ubuntu Linux oder ähnlichen Unix-basierten Betriebssystemen? Apache ist nach wie vor einer der meistgenutzten Webserver weltweit – und früher oder später steht jeder Admin vor der Frage, wie man ihn sauber neu startet, stoppt oder nach einer Konfigurationsänderung wieder hochfährt.

Auf modernen Linux-Systemen übernimmt systemd die Verwaltung von Diensten. Der zentrale Befehl dafür ist systemctl. Ältere Anleitungen verweisen oft noch auf /etc/init.d/ oder den service-Befehl – beides funktioniert zwar noch (systemd leitet die Aufrufe intern um), ist aber nicht mehr der empfohlene Weg.

Konfiguration testen – immer zuerst

Bevor Apache neu gestartet wird, sollte die Konfiguration auf Syntaxfehler geprüft werden. Ein Tippfehler in einer .conf-Datei kann dazu führen, dass Apache nach dem Neustart gar nicht mehr hochkommt – und die Webseite offline ist.

            sudo apachectl configtest
        

Nur wenn die Ausgabe Syntax OK bestätigt, sollte der Neustart erfolgen.

Apache neu starten auf Debian / Ubuntu

Restart (harter Neustart)

            sudo systemctl restart apache2
        

Alle aktiven Verbindungen werden sofort beendet, der Prozess komplett gestoppt und neu gestartet. Für Konfigurationsänderungen an Modulen, Ports oder grundlegenden Servereinstellungen ist das der richtige Weg.

Reload (sanfter Neustart)

            sudo systemctl reload apache2
        

Apache liest die Konfiguration neu ein, ohne den Dienst zu unterbrechen. Laufende Verbindungen werden zu Ende bedient. Das ist die bessere Wahl nach Änderungen an VirtualHosts, .htaccess-Regeln oder SSL-Zertifikaten – also in den meisten Alltagsfällen.

Graceful Restart über apachectl

            sudo apachectl graceful
        

Funktioniert ähnlich wie reload, nutzt aber Apaches eigenen Mechanismus: Laufende Kindprozesse bearbeiten ihre aktuellen Requests noch fertig, neue Kindprozesse starten bereits mit der neuen Konfiguration. Besonders nützlich auf Produktivservern mit hoher Last.

Apache stoppen auf Debian / Ubuntu

            sudo systemctl stop apache2
        

Fährt den Webserver herunter. Alle Verbindungen werden beendet. Der Dienst bleibt gestoppt, bis er manuell oder durch einen Reboot wieder gestartet wird.

Apache starten auf Debian / Ubuntu

            sudo systemctl start apache2
        

Startet einen gestoppten Apache-Dienst. Falls der Dienst bereits läuft, passiert nichts – im Gegensatz zu restart wird kein Neustart ausgelöst.

Status prüfen

            sudo systemctl status apache2
        

Zeigt an, ob Apache läuft, seit wann, und gibt die letzten Logzeilen aus. Hilfreich zur schnellen Diagnose, wenn etwas nicht funktioniert.

Apache beim Systemstart aktivieren oder deaktivieren

Auf den meisten Installationen startet Apache automatisch beim Booten. Falls das nicht der Fall ist – oder wenn man es gezielt verhindern will:

            sudo systemctl enable apache2
sudo systemctl disable apache2
        

enable richtet den Autostart ein, disable entfernt ihn. Der aktuelle Zustand des Dienstes wird davon nicht berührt.

RHEL-basierte Distributionen (Rocky Linux, AlmaLinux, CentOS Stream)

Auf Red-Hat-basierten Systemen heißt der Apache-Dienst nicht apache2, sondern httpd. Die systemctl-Befehle sind identisch, nur der Dienstname ändert sich:

            sudo systemctl restart httpd
sudo systemctl reload httpd
sudo systemctl stop httpd
sudo systemctl start httpd
sudo systemctl status httpd
        

Das klassische CentOS (bis Version 7) hat im Juni 2024 sein End of Life erreicht. Nachfolger sind Rocky Linux und AlmaLinux als Community-Distributionen sowie CentOS Stream als Rolling-Release-Variante.

apachectl – der distributionsübergreifende Weg

Wer regelmäßig auf verschiedenen Systemen arbeitet, kann apachectl als einheitliche Schnittstelle nutzen. Die Befehle funktionieren auf Debian, Ubuntu, RHEL-Derivaten und den meisten Unix-Systemen gleich:

            sudo apachectl start
sudo apachectl stop
sudo apachectl restart
sudo apachectl graceful
sudo apachectl configtest
        

Häufige Stolperfallen

Apache startet nach dem Restart nicht? Meistens liegt es an einem Syntaxfehler in der Konfiguration. apachectl configtest zeigt den Fehler mit Dateiname und Zeilennummer an.

Port bereits belegt? Wenn eine andere Anwendung Port 80 oder 443 blockiert, schlägt der Start fehl. sudo ss -tlnp | grep ':80' zeigt, welcher Prozess den Port belegt.

Änderungen greifen nicht? Bei Änderungen an der php.ini oder an Apache-Modulen reicht ein reload nicht aus – hier braucht es einen vollständigen restart.

Kurzreferenz

AufgabeDebian / UbuntuRHEL / Rocky / Alma
Neustartsudo systemctl restart apache2sudo systemctl restart httpd
Reloadsudo systemctl reload apache2sudo systemctl reload httpd
Stoppensudo systemctl stop apache2sudo systemctl stop httpd
Startensudo systemctl start apache2sudo systemctl start httpd
Statussudo systemctl status apache2sudo systemctl status httpd
Konfig testensudo apachectl configtestsudo apachectl configtest
Gracefulsudo apachectl gracefulsudo apachectl graceful

Hinweis

Zuletzt aktualisiert am 25. Mai 2026.