2008-09-15 10 views
4

Ich frage mich, ob irgendjemand von einer Methode wusste, Apache zu konfigurieren, um auf eine statische HTML-Seite zurückzukommen, sollte es (Apache) feststellen können, dass PHP gestorben ist? Dies würde dem Entwickler eine elegante Lösung zum Anzeigen einer Fehlerseite und nicht (im schlimmsten Fall) des Quellcodes der PHP-Seite, die ausgeführt werden sollte, bereitstellen.Apache fällt zurück, wenn PHP ausfällt

Danke.

Antwort

8

Der PHP-Quellcode wird nur angezeigt, wenn Apache nicht korrekt konfiguriert ist, um PHP-Dateien zu behandeln. Das heißt, wenn ein richtiger Handler nicht definiert wurde.

Bei Fehlern kann das, was angezeigt wird, auf php.ini konfiguriert werden, hauptsächlich die Variable display_errors. Dies sollte in einer Produktionsumgebung auf "off" und "log_errors" auf "on" gesetzt sein.

Wenn PHP tatsächlich stirbt, gibt Apache den entsprechenden HTTP-Statuscode (normalerweise 500) mit der Seite zurück, die von der ErrorDocument-Direktive definiert wird. Wenn es nicht starb, sondern in einer Schleife stecken blieb, gibt es nicht viel, was ich weiß.

Sie können für verschiedene Fehlercodes eine andere Seite angeben.

3

Ich würde davon ausgehen, dass dies in der Regel in einem 500-Fehler führt, und Sie können apaches 500 Handler konfigurieren Sie eine statische Seite anzuzeigen:

Errordocument 500 /500error.html

Sie auch über Fehler-Handler lesen auf apaches documentation site

1

Das eigentliche Problem ist, dass PHP fatale Fehler nicht dazu führen, dass Apache einen 500-Code zurückgibt. Fehler außer E_FATAL und E_PARSE können mit set_error_handler() behandelt werden.

0

Es gibt 2 Möglichkeiten, PHP und Apache zu benutzen. 1. Installieren Sie PHP als Apache-Modul: Auf diese Weise ist die PHP-Ausführung ein Thread innerhalb des Apache-Prozesses. Wenn die PHP-Ausführung fehlschlägt, schlägt der Apache-Prozess fehl. Es gibt keine Rückfallstrategie. 2. Installieren Sie PHP als CGI-Skripthandler: Auf diese Weise startet Apache einen neuen PHP-Prozess für jede Anfrage. Ich die PHP-Ausführung fehlschlägt, apache wird das wissen und es könnte eine Möglichkeit sein, mit dem Fehler umzugehen. Unabhängig davon, wie Sie PHP installieren, können Sie bei fehlgeschlagener PHP-Ausführung Fehler in der Datei php.ini beheben.