Question

Je me demandais si quelqu'un connaissait une méthode pour configurer apache afin qu'il retourne à une page HTML statique, devrait-il (Apache) être en mesure de déterminer que PHP est mort? Cela fournirait au développeur une solution élégante pour afficher une page d'erreur et non (dans le pire des cas) le code source de la page PHP qui aurait dû être exécuté.

Merci.

Était-ce utile?

La solution

Le code source PHP n'est affiché que lorsque Apache n'est pas configuré correctement pour gérer les fichiers php. C'est-à-dire quand un gestionnaire approprié n'a pas été défini.

En cas d'erreur, ce qui est affiché peut être configuré sur php.ini, principalement la variable display_errors. Cela devrait être défini sur off et sur log_errors sur dans un environnement de production.

Si php meurt, apache renverra le code de statut HTTP approprié (généralement 500) avec la page définie par la directive ErrorDocument. Si elle ne meurt pas mais reste coincée dans une boucle, vous ne pouvez pas faire grand chose que je sache.

Vous pouvez spécifier une page différente pour différents codes d'erreur.

Autres conseils

Je suppose que cela entraîne généralement une erreur 500 et que vous pouvez configurer le gestionnaire apaches 500 pour afficher une page statique:

ErrorDocument 500 /500error.html

Vous pouvez également en savoir plus sur les gestionnaires d'erreur sur le site de documentation d'Apaches .

Le vrai problème est que les erreurs fatales de PHP ne permettent pas à Apache de renvoyer un code 500. Les erreurs sauf pour E_FATAL et E_PARSE peuvent être traitées comme bon vous semble à l'aide de set_error_handler () .

Il existe deux manières d'utiliser PHP et 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.

quelle que soit la façon dont vous installez PHP, lorsque l'exécution de PHP échoue, vous pouvez gérer les erreurs dans le fichier php.ini .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top