Heim  >  Artikel  >  Backend-Entwicklung  >  So beheben Sie den PHP504-Fehler

So beheben Sie den PHP504-Fehler

王林
王林Original
2020-06-30 13:48:258113Durchsuche

Lösung für den PHP504-Fehler: 1. Erhöhen Sie die Puffergröße der Fastcgi-Prozessantwort. 2. Ändern Sie die PHP-Umgebungskonfiguration und erhöhen Sie das Zeitlimit des PHP-CGI-Prozessverarbeitungsskripts php-fpm Wechseln Sie in den Apache-Modus.

So beheben Sie den PHP504-Fehler

Die Lösung lautet wie folgt:

Szenario 1:

Aufgrund des standardmäßigen FastCGI-Prozessantwortpuffers von Nginx Fehler, die dadurch verursacht werden, dass sie zu klein sind

Lösung:

Im Allgemeinen beträgt der Standard-Antwortpuffer des Fastcgi-Prozesses 8 KB. In diesem Fall können Sie ihn in nginx.conf vergrößern : fastcgi_buffers 8 128k, was bedeutet, dass der Fastcgi-Puffer auf 8 Blöcke mit 128k Speicherplatz eingestellt wird.

Wenn Sie einen bestimmten Echtzeitvorgang ausführen, müssen Sie möglicherweise den Timeout-Parameter von Nginx erhöhen, beispielsweise auf 60 Sekunden: send_timeout 60; Sie erhalten nicht mehr die Fehlermeldung „504 Gateway Timeout“, das Problem ist im Grunde gelöst.

Szenario 2:

Konfigurationsprobleme der PHP-Umgebung

Manchmal muss die Website die Konfiguration von PHP-FPM und Nginx ändern. Denn in diesem Fall erscheint zusätzlich die Fehlermeldung „504 Gateway Timeout“. Zu diesem Zeitpunkt bedeutet das Nginx 504-Gateway-Timeout, dass das angeforderte Gateway nicht angefordert wurde. Einfach ausgedrückt bedeutet dies, dass das ausführbare PHP-CGI nicht angefordert wurde.

Lösung:

Ändern Sie einfach ein paar Konfigurationen von PHP-FPM:

Ändern Sie max_children von den vorherigen 10 auf die aktuellen 30, um sicherzustellen, dass genügend vorhanden sind Der PHP-CGI-Prozess kann verwendet werden.

Ändern Sie request_terminate_timeout von den vorherigen 0 Sekunden auf 60 Sekunden, sodass die Zeitüberschreitung für die Verarbeitung des Skripts durch den PHP-CGI-Prozess 60 Sekunden beträgt, wodurch verhindert werden kann, dass der Prozess angehalten wird Verbesserung der Nutzungseffizienz.

Ändern Sie dann mehrere Konfigurationselemente von Nginx, um die Anzahl der FastCGI-Anfragen zu reduzieren und versuchen Sie, die Puffer unverändert zu lassen:

fastcgi_buffers wird von 4 64k auf 2 256k geändert;

fastcgi_buffer_size Von 64 KB auf 128 KB;

fastcgi_busy_buffers_size wurde von 128 KB auf 256 KB geändert;

fastcgi_temp_file_write_size wurde von 128 KB auf 256 KB geändert.

Laden Sie die Konfiguration von php-fpm und nginx neu und testen Sie sie erneut. Wenn der Fehler „504 Gateway Timeout“ nicht auftritt, ist das Problem behoben.

Szenario 3:

Die standardmäßige statische Verarbeitungsmethode von php-fpm führt dazu, dass der php-cgi-Prozess für längere Zeit Speicher belegt und nicht freigegeben werden kann, was zu einem 504 führt Fehler.

Lösung:

Ändern Sie die Verarbeitungsmethode von PHP-FPM in den Apache-Modus.

Wenn Sie mehr zu diesem Thema erfahren möchten, besuchen Sie bitte die php-chinesische Website.

Das obige ist der detaillierte Inhalt vonSo beheben Sie den PHP504-Fehler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn