Вопрос

Мне было интересно, знает ли кто-нибудь о методе настройки apache на возврат статической HTML-страницы, должен ли он (Apache) быть в состоянии определить, что PHP умер?Это предоставило бы разработчику элегантное решение для отображения страницы с ошибкой, а не (в худшем случае) исходного кода PHP-страницы, который должен был быть выполнен.

Спасибо.

Это было полезно?

Решение

Исходный код PHP отображается только в том случае, если apache неправильно настроен для обработки php-файлов.То есть, когда правильный обработчик не был определен.

При ошибках то, что показано, может быть настроено в php.ini, в основном переменная display_errors.Для этого должно быть установлено значение off, а для log_errors - значение on в производственной среде.

Если php действительно умрет, apache вернет соответствующий код состояния HTTP (обычно 500) со страницей, определенной директивой ErrorDocument.Если он не умер, а застрял в цикле, то, насколько я знаю, вы мало что можете сделать.

Вы можете указать другую страницу для разных кодов ошибок.

Другие советы

Я бы предположил, что это обычно приводит к ошибке 500, и вы можете настроить обработчик apaches 500 для отображения статической страницы:

Документ с ошибкой 500 /500error.html

Вы также можете прочитать об обработчиках ошибок на сайт документации apaches

Реальная проблема заключается в том, что фатальные ошибки PHP не приводят к тому, что Apache возвращает код 500.Ошибки, за исключением E_FATAL и E_PARSE может быть обработан так, как вам нравится, используя set_error_handler().

Существует 2 способа использования PHP и 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.

независимо от способа установки PHP, при сбое выполнения PHP вы можете обрабатывать ошибки в php.ini файл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top