Verständnis der PHP-FPM-Parameter
process_control_timeout
Englische Erklärung
process_control_timeout mixedTime limit for child processes to wait for a reaction on signals from master. Available units: s(econds), m(inutes), h(ours), or d(ays) Default Unit: seconds. Default value: 0.
Chinesische Erklärung
process_control_timeout mixed 设置子进程接受主进程复用信号的超时时间。可用单位:s(秒),m(分),h(小时)或者 d(天)。默认单位:s(秒)。默认值:0(关闭)。
Die chinesische Übersetzung ist unangemessen. Die englische Erklärung weist nicht darauf hin, dass es sich bei dem Signal um ein Multiplex-Signal handelt.
Mein Verständnis:
Verarbeitung von Anfragen
Im Prinzip wählt php-fpm
einen inaktiven fastcgi
Prozess aus, um die Anfrage zu verarbeiten, bevor sie verarbeitet wird ein Signal an fastcgi, um den fastcgi-Prozess auf die Annahme der Anforderungsverarbeitung vorzubereiten. Der Fastcgi-Prozess ist jedoch nicht immer in der Lage, die Anforderung zu verarbeiten, d Wenn das Signal abläuft, überlegt sich php -fpm andere Möglichkeiten (z. B. die Auswahl anderer fastcgi
-Prozesse). Dies ist die Rolle des process_control_timeout
-Parameters.
php-fpm
perform reload
process_control_timeout
= 10
<?php sleep(50);echo 1;sleep(20); //没有这个sleep,reload会立即生效echo 2;
Wenn der Browser auf http://localhost
zugreift, führen Sie php-fpm
smoothreload
aus, fastcgi Danach Nach Erhalt des Signals zum Schließen des Prozesses kehrt die erste Schlaffunktion direkt zurück, die zweite Schlaffunktion wird jedoch noch ausgeführt. Daher bleibt php-fpm 10 Sekunden lang bei diesem alten Fastcgi-Prozess hängen, danach kann ein reibungsloser Neustart durchgeführt werden.
request_terminate_timeout
Die Beschreibung in der php-fpm.conf
-Datei lautet wie folgt folgt:
; The timeout for serving a single request after which the worker process will ; be killed. This option should be used when the 'max_execution_time' ini option ; does not stop script execution for some reason. A value of '0' means 'off'. ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) ; Default Value: 0 ;request_terminate_timeout = 0
Übersetzung ist:
Der Parameter request_terminate_timeout
legt den Timeout für die Verarbeitung einer einzelnen Anfrage fest. Danach wird der Worker-Prozess beendet. Diese Option sollte verwendet werden, wenn die Option max_execution_time
in der Datei php.ini die Ausführung des Skripts aus irgendeinem Grund nicht stoppt. Der Standardwert ist 0, was bedeutet, dass diese Option deaktiviert ist.
Wie oben erwähnt, legt request_terminate_timeout
das Timeout der Anfrage fest, und max_execution_time
in der php.ini-Konfiguration ist die maximal zulässige Ausführungszeit für das Skript gemäß der Erklärung unten im Handbuch. Der Unterschied zwischen
max_execution_time integer 这设置了脚本被解析器中止之前允许的最大执行时间,单位秒。 这有助于防止写得不好的脚本占尽服务器资源。 默认设置为 30。 从命令行运行 PHP 时,默认设置为 0。 最大执行时间不会影响系统调用和系统操作等。更多细节参见 set_time_limit()。 在 安全模式 下你不能通过 ini_set() 来修改此设置。 唯一的解决方法是关闭安全模式或者在 php.ini中修改时间限制。 你的 web 服务器也可以有其他超时设置,也有可能中断 PHP 的执行。 Apache 有一个 Timeout 指令,IIS 有一个 CGI 超时功能。 他们默认都是 300 秒。更多具体信息参见你的 web 服务器的文档。
ist wie folgt:
Nach einer Zeitüberschreitung gibt request_terminate_timeout
502Bad Gateway zurück, während max_execution_time
Fatal Error
auslöst.
max_execution_time beinhaltet nicht die Zeit für Systemaufrufe wie die Verwendung von system()
, sleep()
, Stream-Operationen, Datenbankoperationen usw., daher ist es relativ nutzlos, während request_terminate_timeout die vollständige Anforderungszeit von enthält das Programm.
Außerdem wird durch das Einschalten von request_terminate_timeout max_execution_time nicht ungültig. Wer zuerst das Timeout erreicht, wird wirksam.
Weitere verwandte PHP-Probleme finden Sie auf der chinesischen PHP-Website: https://www.php.cn/
Das obige ist der detaillierte Inhalt vonVerständnis der PHP-FPM-Parameter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Um das Problem des fehlenden PHP-FPM in Ubuntu zu lösen, sind spezifische Codebeispiele erforderlich. Im Ubuntu-System ist die Installation und Konfiguration von PHP-FPM ein häufiger Vorgang, aber manchmal tritt das Problem des fehlenden PHP-FPM während des Installationsprozesses auf. In diesem Artikel wird detailliert beschrieben, wie Sie dieses Problem lösen können, und es werden spezifische Codebeispiele bereitgestellt, die Sie bei der Vervollständigung der Installation und Konfiguration unterstützen. 1. Überprüfen Sie, ob PHP-FPM installiert wurde. Überprüfen Sie zunächst mit dem folgenden Befehl, ob PHP-FPM im System installiert ist: dpkg-l|gr

Methoden zur Lösung des Problems des PHP7-FPM-Startfehlers in einer Linux-Umgebung. Wenn Sie einen Linux-Server zum Erstellen einer Website oder Anwendung verwenden, ist PHP7-FPM ein häufig verwendeter PHPFastCGI-Prozessmanager. Manchmal tritt jedoch das Problem auf, dass PHP7-FPM nicht gestartet werden kann, was dazu führen kann, dass auf die Website nicht normal zugegriffen werden kann. In diesem Artikel behandeln wir einige gängige Problemumgehungen und stellen spezifische Codebeispiele bereit. Ich hoffe, dass diese Informationen Ihnen helfen können, das Problem des PHP7-FPM-Startfehlers schnell zu lösen. prüfen

PHP7-FPM unter Linux ist ein gängiger PHPFastCGI-Prozessmanager, der normalerweise für die Ausführung von PHP-Programmen verwendet wird. Während des Konfigurations- oder Bereitstellungsprozesses kann es jedoch manchmal vorkommen, dass PHP7-FPM nicht gestartet werden kann, was dazu führt, dass auf die Website nicht normal zugegriffen werden kann. In diesem Fall müssen wir einige Maßnahmen ergreifen, um das Problem zu bewältigen und zu lösen. 1. Überprüfen Sie zunächst das Fehlerprotokoll von PHP7-FPM. Normalerweise befindet sich das Fehlerprotokoll unter /var/log/php7-fpm.

Graceful Restart GR ist die Abkürzung für Graceful Restart. Es handelt sich um einen Mechanismus, der sicherstellt, dass Weiterleitungsdienste beim Neustart des Protokolls nicht unterbrochen werden. Der Kern des GR-Mechanismus besteht darin, dass ein Gerät beim Neustart des Protokolls seine umliegenden Geräte benachrichtigen kann, um innerhalb eines bestimmten Zeitraums stabile Nachbarbeziehungen und Routen zum Gerät aufrechtzuerhalten. Nachdem das Protokoll neu gestartet wurde, unterstützen Peripheriegeräte es bei der Synchronisierung von Informationen (einschließlich verschiedener Topologie-, Routing- und Sitzungsinformationen, die von Routing-/MPLS-bezogenen Protokollen verwaltet werden, die GR unterstützen) und stellen das Gerät in kürzester Zeit wieder in den Zustand vor dem Neustart. Zustand. Während des gesamten Protokollneustartvorgangs kommt es zu keinem Routenwechsel und es kommt zu keiner Änderung des Paketweiterleitungspfads. Das gesamte System kann Daten ohne Unterbrechung weiterleiten. Dieser Vorgang wird als reibungsloser Neustart bezeichnet.

Bei einem unserer Webprojekte ist durch die Zunahme neuer Städte die Zahl der Besuche gestiegen und der Druck auf die DB als Schnittstellenanbieter ist in letzter Zeit stark gestiegen durch nachgelagertes Feedback. 502, badgateway, ist normalerweise ein Fehler im Upstream (hier PHP). Die häufigste Ursache für 502 ist, dass die Skriptausführung die Zeitüberschreitungszeit überschreitet oder die Zeitüberschreitungseinstellung zu groß ist, was dazu führt, dass der PHP-Prozess nicht ausgeführt wird für eine lange Zeit freigegeben, und es gibt keine untätigen Arbeiter, um Gäste abzuholen. Unser Projekt wird dadurch verursacht, dass die PHP-Ausführungszeit zu kurz eingestellt ist. In diesem Fall können Sie zunächst die PHP-Ausführungszeit entsprechend erhöhen und sicherstellen, dass 502 zuerst gelöscht wird. Schließlich kostet die Optimierung mehr.

Wenn Sie das Problem des fehlenden PHP-FPM in Ihrem Ubuntu-System lösen möchten, müssen Sie eine Reihe von Schritten zur Installation und Konfiguration von PHP-FPM befolgen. PHP-FPM (FastCGIProcessManager) ist ein Prozessmanager, der dynamische Seitenanfragen verarbeitet und die Leistung und Stabilität von PHP-Anwendungen verbessern kann. Im Folgenden erfahren Sie, wie Sie PHP-FPM auf einem Ubuntu-System installieren und konfigurieren, mit konkreten Codebeispielen, die bei der Lösung dieser Herausforderung helfen. Schritt 1: Die Aktualisierung des Systems ist im Gange

Nginx unterscheidet sich von Apache. In Apache können Sie das Fehlerprotokoll von PHP direkt angeben, sodass die Fehlerinformationen während der PHP-Ausführung direkt in das Fehlerprotokoll von PHP eingegeben werden, das einfach abgefragt werden kann. In Nginx sieht es so aus: Nginx zeichnet nur Zugriffsprotokolle für Seitenbesuche auf. Es werden keine PHP-Fehlerprotokollinformationen angezeigt. Nginx sendet die Anfrage für PHP zur Verarbeitung an den Prozess php-fpmfastcgi. Der Standardwert von php-fpm gibt nur die Fehlermeldung von php-fpm aus, und das Fehlerprotokoll von PHP ist nicht im Fehlerprotokoll von php-fpm zu sehen. Der Grund ist, dass die Konfigurationsdatei php von php-fpm

Es ist eine gängige Praxis, PHP7-FPM als serverseitige Skript-Ausführungsumgebung auf einem Linux-Server zu verwenden, aber manchmal kann es zu Startausnahmen kommen. In diesem Artikel werden einige Techniken zum Umgang mit PHP7-FPM-Startausnahmen vorgestellt und einige spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, das Problem besser zu lösen. 1. Überprüfen Sie die Konfigurationsdatei von PHP7-FPM, die sich normalerweise im Verzeichnis /etc/php/7.x/fpm/pool.d/ befindet, um sicherzustellen, dass die Konfigurationen in der Konfigurationsdatei korrekt sind. Kann machen
