Was ist ein Server-Neustart? Ablauf, Dauer und Folgen für deine Galerie

 

Ein Server-Neustart, auf Englisch Reboot, beendet alle Programme auf dem Rechner, auf dem deine Galerie liegt, fährt ihn herunter und startet ihn von vorn. Für eine halbe Minute bis einige Minuten ist deine Website dann nicht erreichbar, Dateien und Datenbankinhalte bleiben erhalten. Meist begegnet dir das Thema in einer von zwei Formen. Entweder kündigt dein Webhoster per Mail Wartungsarbeiten an, „in der Nacht auf Mittwoch zwischen 2 und 4 Uhr kann es zu kurzen Unterbrechungen kommen“. Oder du hast auf deinem eigenen Server Updates eingespielt, und beim nächsten Anmelden steht dort, dass ein Neustart erforderlich ist.

Schema zum Server-Neustart: Server fährt herunter und wieder hoch, Dienste laden in fester Reihenfolge neu

Zwischen Herunterfahren und Hochfahren

Bei einem sauberen Neustart bittet das Betriebssystem zuerst jeden laufenden Dienst, sich zu beenden. Der Webserver nimmt keine neuen Anfragen mehr an, und wer in diesem Moment eine Seite aufruft oder ein Foto hochlädt, sieht im Browser einen Verbindungsabbruch. Die Datenbank schreibt ihre letzten Änderungen aus dem Arbeitsspeicher auf die Platte und schließt ihre Dateien. Beim Hochfahren lädt zuerst der Systemkern, danach startet die Diensteverwaltung (unter aktuellen Linux-Systemen systemd) die einzelnen Programme, teils gleichzeitig. Eine Datenbank, die nach einem Absturz erst ihre Dateien prüfen muss, braucht dabei länger als ein Webserver, der nur seine Konfiguration liest.

Ein kleiner virtueller Server ist oft nach einer halben bis ganzen Minute wieder da. Ein eigenes Gerät im Rechenzentrum prüft beim Einschalten erst Speicher und Festplattencontroller und braucht drei bis fünf Minuten. Verloren geht nur, was ausschließlich im Arbeitsspeicher lag: ein Upload, der gerade lief, oder ein Formular, das in genau dieser Sekunde abgeschickt wurde.

Server-Neustart beim Webhoster: was du tun kannst

Die meisten Galerien liegen auf geteiltem Webspace. Dort startest du selbst nichts neu, denn auf derselben Maschine arbeiten viele andere Kunden. Neustarts plant der Webhoster, meist nachts, und kündigt sie bei größeren Arbeiten vorher an. Drei Dinge liegen trotzdem bei dir:

  • Wartungsfenster meiden: Lade in der angekündigten Zeit keine Fotos hoch. Ein Upload, der in den Neustart fällt, bricht ab.
  • Statusseite prüfen: Fast jeder Webhoster meldet Störungen auf einer Statusseite oder im Kundenmenü. Ein Blick dorthin klärt, ob das Problem bei dir oder beim Anbieter liegt.
  • Den Support gezielt fragen: Häufen sich Ausfälle, schick Datum, Uhrzeit und den Wortlaut der Meldung mit. Dann kann der Support im Protokoll des Servers nachsehen.

Mit eigenem Server: Neustart oder nur ein Dienst?

Dieser Abschnitt gilt nur für einen vServer oder Root-Server, auf dem du selbst Befehle ausführst. Die ganze Maschine neu zu starten, ist dort die grobe Lösung. Oft genügt es, ein einzelnes Programm neu zu laden, während der Rest weiterläuft:

AnlassWas neu startenBegründung
PHP-Erweiterung installiert oder php.ini geändertnur PHP-FPM oder ApachePHP liest seine Einstellungen nur beim Start
Konfiguration des Webservers geändertWebserver neu laden (reload)übernimmt die Änderung, ohne laufende Verbindungen zu kappen
Update des Systemkernsdie ganze Maschineein neuer Kern wird nur beim Hochfahren geladen
Datei fehlt oder Schreibrechte falschgar nichtsein Neustart ändert keine Datei und kein Recht

Ein typischer Fall für die erste Zeile ist die PHP-Erweiterung GD, ohne die die Galerie keine Vorschaubilder erzeugt. Unter Debian oder Ubuntu heißt das Paket php-gd oder passend zur Version etwa php8.2-gd. Beim Installieren lädt apt PHP-FPM bzw. Apache meist schon selbst neu. Wirkt GD danach trotzdem nicht, genügt sudo systemctl restart php8.2-fpm oder apache2, die Maschine läuft dabei weiter. Bevor du eine geänderte Webserver-Konfiguration übernimmst, prüfe sie mit apachectl configtest oder nginx -t.

Brauchst du doch einen kompletten Neustart, nimm sudo reboot oder im Kundenmenü des vServers „Neustart“. „Reset“ entspricht dem Ziehen des Netzsteckers und ist nur für eine Maschine gedacht, die auf nichts mehr reagiert. Danach zeigt systemctl --failed, ob ein Dienst nicht hochgekommen ist, und ein Testupload in der Verwaltung, ob die Galerie wieder schreiben darf. Ein Neustart, den niemand ausgelöst hat, deutet auf einen Absturz oder Arbeiten an der Hardware hin. Was kurz vorher geschah, zeigt journalctl -b -1, sofern das System sein Journal dauerhaft speichert.

Server-Neustart und das Bildergalerie-Script

Für das Bildergalerie-Script ist ein Server-Neustart harmlos. Bilder, Vorschaubilder und Zwischenspeicher liegen als Dateien auf der Festplatte, Kategorien und Beschreibungen in der Datenbank, und beides übersteht den Reboot unverändert. Während die Dienste wieder anlaufen, kann die Galerie aber für einige Sekunden Fehlermeldungen zeigen, die schlimmer aussehen, als sie sind.

Welche Meldung wann erscheint, zeigt die Zeitleiste mit Beispielwerten eines kleinen vServers, auf dem PHP als eigener Dienst PHP-FPM läuft. In den ersten rund 22 Sekunden fährt die Maschine herunter und wieder hoch, dieser Teil ist im Diagramm gestaucht. Nach 24 Sekunden nimmt der Webserver Anfragen an, nach 26 Sekunden ist PHP-FPM bereit, nach 29 Sekunden die Datenbank. Dazwischen sieht der Besucher erst „502 Bad Gateway“ (Apache meldet hier oft 503), dann den Fehler 500. Läuft PHP als Apache-Modul, entfällt die 502-Phase.

Animierte Zeitleiste eines Server-Neustarts mit Beispielwerten: keine Antwort, bis der Webserver nach rund 24 Sekunden läuft, Fehler 502, bis PHP-FPM nach 26 Sekunden bereit ist, Fehler 500, bis die Datenbank nach 29 Sekunden läuft, danach wieder Status 200
Erst keine Antwort, dann kurz 502 und 500, dann wieder die Galerie: Beide Fehler heißen hier nur, dass ein Dienst noch startet.

Der Zwischenspeicher in cache/ hilft in der 500-Phase nicht, denn die Galerie liest ihre Einstellungen bei jedem Aufruf frisch aus der Datenbank. Im Fehlerprotokoll steht dann „PHP Fatal error: Uncaught mysqli_sql_exception: Connection refused“ mit Verweis auf class/dbcache_class.php. Verbindet sich die Galerie über einen Socket, lautet der Zusatz „No such file or directory“. Nach einem sauberen Neustart ist diese Phase in Sekunden vorbei. Nach einem Absturz dauert sie länger, weil die Datenbank erst ihre Dateien prüft. Steht der Eintrag nach einigen Minuten immer noch im Protokoll, startet der Datenbankdienst nicht. Auf Webspace meldest du das dem Support.

Drei Spuren kann ein Neustart in der Galerie hinterlassen:

Was du siehstUrsacheWas du tust
Der Browser meldet beim Hochladen einen Verbindungsabbruchder Upload lief, als der Webserver herunterfuhr; PHP konnte keine Antwort mehr sendennach dem Neustart unter „Bilder verwalten“ nachsehen, ob das Foto fehlt, und es erneut hochladen
Weiße Seite oder „500 Internal Server Error“, bei eingeschalteter Fehleranzeige „Fatal error: Uncaught mysqli_sql_exception“Webserver und PHP laufen schon, die Datenbank startet noch; das Script bricht beim Verbinden abeine Minute warten und neu laden; bleibt der Fehler, den Datenbankdienst prüfen lassen
Dateien .tmp_… in bilder/tn/Reste eines Vorschaubilds, das beim Herunterfahren gerade geschrieben wurdegefahrlos löschen

Galerien, die einst mit Version 3.10 oder älter eingerichtet und später aktualisiert wurden, arbeiten noch mit MyISAM-Tabellen. Nach einem Absturz oder harten Ausschalten kann dort „Table '…' is marked as crashed“ erscheinen, dann hilft in phpMyAdmin „Tabelle reparieren“. Neue Installationen legen InnoDB-Tabellen an, die sich nach einem Absturz selbst wiederherstellen.

Zwei Störungen behebt ein Neustart dagegen nicht, weil sie in Dateien stecken. Eine veraltete Anzeige stammt aus dem Zwischenspeicher der Galerie, der den Neustart übersteht und sich nach 350 Sekunden oder beim nächsten Speichern in der Verwaltung von selbst erneuert. Fehlen Vorschaubilder, weil das Script nicht in bilder/tn/ schreiben darf, helfen nur passende Ordnerrechte, wie unter Vorschaubilder werden nicht erstellt beschrieben.

Die Galerie nach dem Neustart überwachen

Einen eigenen Statusendpunkt hat das Script nicht. Für einen Überwachungsdienst genügt die Adresse von bildergalerie.php. Antwortet sie mit Status 200, laufen PHP und Datenbank. In der Lücke nach dem Neustart kommt 502, 500 oder gar keine Antwort.

Auf den Statuscode allein ist aber kein Verlass. Ist bei deinem Hoster die Fehleranzeige von PHP eingeschaltet, liefert auch die Seite mit der Fehlermeldung den Status 200. Lass den Dienst deshalb zusätzlich nach einem Wort suchen, das nur in der fertigen Galerie steht, etwa dem Namen einer Kategorie. Wer das Verhalten selbst nachstellen will, kann das Script kostenlos herunterladen und auf einem Testserver neu starten.

Häufige Fragen zum Server-Neustart

Diese Fragen tauchen besonders dann auf, wenn die Galerie nach einem Neustart nicht sofort normal erscheint.

Wie lange ist die Seite bei einem Server-Neustart offline?

So lange, bis Webserver, PHP und Datenbank wieder laufen, bei einem kleinen vServer meist unter einer Minute, bei einem eigenen Gerät mit Hardwareprüfung einige Minuten. Wann deine Galerie am wenigsten Besuch hat und sich ein geplanter Neustart anbietet, zeigen die Zugriffsprotokolle beim Webhoster.

Was tun, wenn „502 Bad Gateway“ nicht verschwindet?

Direkt nach dem Neustart ist 502 normal, siehe Zeitleiste oben. Steht die Meldung nach einer Minute noch da, ist der PHP-Dienst nicht gestartet. Auf Webspace hilft dann nur der Support. Auf einem eigenen Server nennt journalctl -u php8.2-fpm (passend zu deiner Version) den Grund, oft einen Tippfehler in der gerade geänderten Konfiguration.

Muss ich nach einem Update der Galerie den Server neu starten?

Nein. Die neuen Dateien ersetzen per FTP die alten, und PHP liest sie beim nächsten Aufruf. Der PHP-OPcache prüft in der Standardeinstellung alle zwei Sekunden, ob sich eine Datei geändert hat. Nur wenn der Webhoster diese Prüfung abgeschaltet hat (opcache.validate_timestamps=0), läuft alter Code weiter. Du erkennst diesen Sonderfall daran, dass Änderungen nicht wirken oder „Class not found“ erscheint. Auf gemietetem Webspace bittest du dann den Support, PHP neu zu laden, auf einem eigenen Server startest du Apache oder PHP-FPM neu.

Verwandte Themen

Da ein Neustart oft Teil der Fehlersuche ist, passen diese Artikel zu Servern und typischen Störungen gut dazu: