Verschiedene Möglichkeiten zum Neustart von PHP-FPM
PHP-FPM (PHP FastCGI Process Manager) ist ein leistungsfähiger und weit verbreiteter Prozessmanager für PHP, der oft wegen seiner Geschwindigkeit und seiner Fähigkeit, Websites mit hohem Datenverkehr zu verarbeiten, geschätzt wird. Für Entwickler und Systemadministratoren ist es wichtig zu wissen, wie man PHP-FPM neu startet, insbesondere wenn man Änderungen an PHP-Konfigurationen vornimmt, Probleme behebt oder routinemäßige Wartungsarbeiten durchführt. In diesem Artikel werden wir verschiedene Methoden zum Neustart von PHP-FPM auf unterschiedlichen Systemen und in unterschiedlichen Umgebungen untersuchen.
Warum PHP-FPM neu starten?
Bevor wir auf die einzelnen Methoden eingehen, sollten wir kurz erörtern, warum ein Neustart von PHP-FPM notwendig sein könnte:
- Konfigurationsänderungen: Wenn Sie PHP-Einstellungen in den Dateien php.ini oder php-fpm.conf ändern, ist ein Neustart erforderlich, damit die Änderungen wirksam werden.
- Optimierung der Leistung: Ein Neustart von PHP-FPM kann dazu beitragen, Speicher und Ressourcen freizugeben, insbesondere bei stark frequentierten Websites.
- Fehlerbehebung: Wenn PHP-FPM auf Probleme stößt oder nicht mehr reagiert, kann ein Neustart helfen, vorübergehende Störungen zu beheben.
- Log-Rotation: Nach der Rotation der Protokolldateien für PHP-FPM kann ein Neustart erforderlich sein, um sicherzustellen, dass neue Protokolle ordnungsgemäß geschrieben werden.
Voraussetzungen
Vergewissern Sie sich, dass Sie Root-Zugriff oder die notwendigen Rechte haben, um die Dienste auf Ihrem Server neu zu starten. Je nach Linux-Distribution können Sie verschiedene Befehle wie systemctl oder service verwenden.
Methode 1: Verwendung von systemctl
Bei modernen Linux-Distributionen wie Ubuntu 16.04 und CentOS 7 ist systemctl die Standardmethode zur Verwaltung von Diensten, einschließlich PHP-FPM. Im Folgenden wird beschrieben, wie Sie PHP-FPM mit systemctl neu starten können:
PHP-FPM neu starten
Mit diesem Befehl wird der PHP-FPM-Dienst neu gestartet, wobei alle neuen Konfigurationsänderungen übernommen werden.
PHP-FPM anhalten und starten
Wenn Sie mehr Kontrolle wünschen, können Sie PHP-FPM auch manuell stoppen und starten:
sudo systemctl start php-fpm
Dies kann hilfreich sein, wenn Sie sicherstellen wollen, dass der Dienst vollständig gestoppt ist, bevor Sie ihn wieder starten.
Status prüfen
Um sicherzustellen, dass PHP-FPM erfolgreich neu gestartet wurde, verwenden Sie:
Dies zeigt den Status des PHP-FPM-Dienstes an, einschließlich der Frage, ob er aktiv ist und ob es aktuelle Protokollmeldungen gibt.
Methode 2: Verwendung des Befehls service
Der Befehl service wird üblicherweise bei älteren Linux-Distributionen oder aus Gründen der Abwärtskompatibilität verwendet. Hier erfahren Sie, wie Sie PHP-FPM mit dem Befehl service neu starten:
Oder um den Dienst separat zu stoppen und zu starten:
sudo dienst php-fpm starten
Methode 3: Neustart bestimmter PHP-FPM-Versionen
Wenn Sie mehrere PHP-Versionen installiert haben, müssen Sie die Version von PHP-FPM angeben, die Sie neu starten möchten. Wenn Sie zum Beispiel PHP 7.4 installiert haben, verwenden Sie den folgenden Befehl:
Oder mit service:
Diese Methode ist besonders nützlich für Umgebungen, in denen unterschiedliche PHP-Versionen für verschiedene Anwendungen oder Websites benötigt werden.
Methode 4: Direktes Senden von Signalen an PHP-FPM
Sie können direkt Signale an PHP-FPM senden, um Konfigurationen neu zu laden, ohne den Dienst vollständig neu zu starten. Dies ist ein unauffälligerer Ansatz, der den Webverkehr weniger stören kann:
Konfiguration neu laden
Um die PHP-FPM-Konfiguration neu zu laden, ohne bestehende Prozesse zu beenden, verwenden Sie:
Ersetzen Sie /run/php/php-fpm.pid durch den Pfad zu Ihrer tatsächlichen PID-Datei, falls dieser abweicht. Diese Methode ist nützlich, wenn Sie Konfigurationsänderungen nachladen wollen, ohne alle PHP-FPM-Prozesse neu zu starten.
Anständiger Neustart
Ein sanfter Neustart ermöglicht es PHP-FPM, laufende Anfragen zu beenden, bevor er neu gestartet wird:
Dies ist besonders in Produktionsumgebungen hilfreich, in denen Sie die Unterbrechung aktiver Benutzersitzungen vermeiden wollen.
Methode 5: Verwendung von pkill oder killall
Wenn Sie Probleme mit PHP-FPM haben und alle Prozesse zwangsweise stoppen müssen, können Sie pkill oder killall verwenden. Dies ist eine aggressivere Methode und sollte mit Vorsicht verwendet werden:
Oder:
Nachdem Sie die Prozesse beendet haben, müssen Sie PHP-FPM manuell starten:
Methode 6: Neustart von Nginx oder Apache
In einigen Fällen kann ein Neustart Ihres Webservers indirekt PHP-FPM neu starten, wenn es eng mit dem Prozess des Webservers verbunden ist. So können Sie das tun:
Nginx
Apache
Diese Methode wird zwar nicht für PHP-FPM-spezifische Probleme empfohlen, kann aber nützlich sein, wenn Sie Wartungsarbeiten an Ihrem gesamten Web-Stack durchführen.
Best Practices für den Neustart von PHP-FPM
- Protokolle prüfen: Prüfen Sie vor dem Neustart die PHP-FPM-Protokolle auf Fehler oder Warnungen. Dies kann helfen, zugrundeliegende Probleme zu identifizieren, die ohne einen Neustart behoben werden können.
- Sanfte Neustarts in der Produktion: Bevorzugen Sie in einer Produktionsumgebung immer einen sanften Neustart, um die Benutzer nicht zu stören.
- Überwachen Sie die Ressourcenauslastung: Verwenden Sie Tools wie top, htop oder ps, um die PHP-FPM-Prozesse vor und nach einem Neustart zu überwachen, um sicherzustellen, dass der Prozess wie erwartet funktioniert.
Schlussfolgerung
Der Neustart von PHP-FPM ist eine gängige Aufgabe, mit der jeder Serveradministrator oder Entwickler vertraut sein sollte. Egal, ob Sie systemctl, service, das Senden von Signalen oder einen sanften Neustart verwenden, die Kenntnis der richtigen Methode für Ihre Situation kann eine reibungslose Leistung und minimale Unterbrechung Ihrer Dienste gewährleisten. Wenn Sie sich an die Best Practices halten, können Sie Ihren PHP-FPM effizient betreiben und alle Probleme, die auftreten können, sicher bewältigen.