Domanda

Mi chiedevo se qualcuno conoscesse un metodo per configurare Apache in modo che ritorni a restituire una pagina HTML statica, dovrebbe (Apache) essere in grado di determinare che PHP è morto?Ciò fornirebbe allo sviluppatore una soluzione elegante per visualizzare una pagina di errore e non (scenario peggiore) il codice sorgente della pagina PHP che avrebbe dovuto essere eseguita.

Grazie.

È stato utile?

Soluzione

Il codice sorgente PHP viene visualizzato solo quando Apache non è configurato correttamente per gestire i file php.Cioè, quando non è stato definito un gestore adeguato.

In caso di errori, ciò che viene mostrato può essere configurato su php.ini, principalmente la variabile display_errors.Dovrebbe essere impostato su off e log_errors su on in un ambiente di produzione.

Se php muore effettivamente, Apache restituirà il codice di stato HTTP appropriato (solitamente 500) con la pagina definita dalla direttiva ErrorDocument.Se non è morto, ma è rimasto bloccato in un loop, per quanto ne so non c'è molto che puoi fare.

È possibile specificare una pagina diversa per codici di errore diversi.

Altri suggerimenti

Presumo che questo in genere si traduca in un errore 500 e puoi configurare il gestore Apache 500 per mostrare una pagina statica:

ErrorDocument 500 /500error.html

Puoi anche leggere informazioni sui gestori degli errori su sito di documentazione di Apache

Il vero problema è che gli errori irreversibili di PHP non fanno sì che Apache restituisca un codice 500.Errori tranne E_FATAL E E_PARSE può essere gestito come preferisci set_error_handler().

Esistono 2 modi per utilizzare PHP e Apache.

1. Install PHP as an Apache module: this way the PHP execution is a thread inside the apache process. So if PHP execution fails, then Apache process fails too. there is no fallback strategy.

2. Install PHP as a CGI script handler: this way Apache will start a new PHP process for each request. If the PHP execution fails, then Apache will know that, and there might be a way to handle the error.

indipendentemente dal modo in cui installi PHP, quando l'esecuzione di PHP fallisce puoi gestire gli errori nel file php.ini file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top