it-swarm.com.de

Joomla Administrator Bad Gateway 502 bei Fehler

Ich migriere mein Joomla! Anwendung von einem NGinx (Cache) + Apache (PHP) Server zu einem Nginx + PHP-FPM Fast CGI. Als ich die verschiedenen Teile davon testete, stellte ich fest, dass Nginx mit einem 502 Bad Gateway-Fehler antwortete, als das Back-End (Administrator) einen Fehler verursachte (d. H. Diese Datei konnte nicht geschrieben werden usw.).

Ich habe diese Frage gesehen:

Nginx 502 im Administrator

Die Lösung bestand darin, das Problem zu beheben, das den Fehler verursacht, anstatt das Problem mit dem fehlerhaften Gateway zu lösen.

Ich habe versucht, das eigentliche Problem zu lokalisieren und bin auf PHP als Statusheader:

Status "0 Datei konnte nicht geschrieben werden"

Ich denke, dass Nginx versucht, diesen Header einem HTTP-Statuscode zuzuordnen, und dann fehlschlägt.

Hat jemand eine Idee, wie man das löst?

Ich habe error_page Direktive gesehen

nginx.org/en/docs/http/ngx_http_core_module.html#error_page

auf nginx zusammen mit fastcgi_intercept_errors

nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_intercept_errors

und mit proxy_intercept_errors

nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_intercept_errors

, aber da der Header falsch ist, glaube ich, dass ich ihn auf Nginx nicht verarbeiten kann (scheint auch nur Statuscodes über 300 zu kontrollieren)

1
vegetable

Verwalten, um es zu lösen Hinzufügen von benutzerdefinierten Header in der error.php-Datei auf der Administrator-Vorlage ... Ich weiß nicht, ob das die beste Lösung ist.

if ($this->error->getCode() >= 400 && $this->error->getCode() <= 500) {
    header("Status: {$this->error->getCode()}", true, $this->error->getCode());
} else {
    // Here is where MySQL Error would fit (e.g. mysql error 1064)
    header("Status: 500", true, 500);
}
1
vegetable