Mein PHP-CGI hat ohne ersichtlichen Grund damit begonnen, leere Seiten bereitzustellen, bis ich den Prozess neu gestartet habe.
Ich möchte wissen warum.
Leider hat die "Produktions" -Konfigurationsdatei von PHP standardmäßig kein error_log. In meinem Nginx-Fehlerprotokoll wurden auch keine PHP-Fehler angezeigt. Dies ist wahrscheinlich ein hoffnungsloser Fall, aber ich frage nur für den Fall.
Hier ist mein Setup
- Nginx 0.8.2
- PHP 5.2.6-3ubuntu4.1 mit Suhosin-Patch 0.9.6.2 (cli) (erstellt: 23. April 2009, 14:37:14 Uhr)
- PHP APC 3.0.19-2
- spawn-fcgi v1.6.2 (ipv6) - fastcgi-Wrapper von lighttpd
Irgendwelche Ideen, was den Fehler verursacht haben könnte?
Aktualisieren
Ich glaube, ich habe das Problem isoliert. Ich habe Monit verwendet, um PHP automatisch neu zu starten, wenn es leer wird. Meine PHP-Fehlerprotokolle sind leer.
Aber ich habe herausgefunden, dass wenn ich ein Wordpress-Plugin namens WP-SuperCache deaktiviert habe, mein PHP nicht alle ~ 10 Stunden zurückgesetzt wird. Bisher läuft mein PHP seit 3 Tagen hintereinander. Hat jemand irgendwelche Vorschläge dazu?
Überprüfen Sie den Antwortstatus Ihrer Anforderungen, wenn dies erneut auftritt (z. B. curl -i). Wenn der Status nicht 200 ist, überprüfen Sie Ihre Fehlerseiten (insbesondere die für die angezeigte Fehlernummer) und stellen Sie sicher, dass dies nicht der Fall ist Stellen Sie die Umleitung auf eine Weise ein, die eine Endlosschleife verursachen kann.
Wenn der Antwortstatus 200 lautet, überprüfen Sie, ob die Antwort einen anderen Text als die HTTP-Header enthält.
quelle
Dies ist ein häufiges Problem. Das Beste, was Sie tun können, ist, Ihr spawn-fcgi jeden Abend neu zu starten und Ihre Fehlerprotokolle zu beobachten. Ein kleines Python Logwatch Programm, das Ihr PHP neu startet, finden Sie hier.
http://hostingfu.com/article/keeping-your-php-fastcgi-processes-alive
quelle
Keine Antwort, aber Vorschlag - ersetzen Sie spawn-fcgi durch php-fpm, es ist anpassbarer.
PS. Vielleicht haben Sie eine spezielle 50x-Fehlerseitenumleitung in nginx.conf
UPD: Heute bin ich auf ein ähnliches Problem gestoßen, als nginx + php anfing, leere Seiten zu bedienen. Meine Forschung hat gezeigt, dass es leere Seite gesendet hat, was auch immer PHP eine Ausnahme warf. Möglicherweise handelt es sich um eine Art php.ini-Direktive, die anstelle eines Fehlers leer dient. Ich sollte Protokolle untersuchen und etc ... abwischen.
UPD2: Sehen Sie sich Ihre php.ini an, es gibt 2 Parameter, die Sie ändern müssen, um PHP-Fehler zu sehen:
quelle
Die Klausel "spontan über Nacht passiert" klingt interessant ... ist es möglich, dass Ihr Host damit begonnen hat, dem gesamten Datenverkehr zusätzliche Status-Header hinzuzufügen? Wenn ja, sehen Sie möglicherweise diesen Fehler:
Joomla! PHP, FastCGI, leere Seite und doppelter Header 'Status'
quelle