Heim > Artikel > Backend-Entwicklung > So beheben Sie den PHP504-Fehler
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.
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!