Apache падает, когда PHP не работает

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

Благодарю.

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

На ошибках показано, что показано на php.ini, в основном переменная display_errors. Это должно быть отключено и log_errors включено в рабочей среде.

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

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

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

ErrorDocument 500 /500error.html

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

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

Существует 2 способа использования PHP и apache. 1. Установите PHP как модуль Apache: таким образом, выполнение php является потоком внутри процесса apache. поэтому, если выполнение php завершится неудачно, процесс apache завершится с ошибкой. нет альтернативной стратегии. 2. Установите PHP как обработчик сценария CGI: таким образом apache начнет новый процесс PHP для каждого запроса. Я выполняю выполнение PHP, apache это знает, и может быть способ справиться с ошибкой. независимо от способа установки PHP, когда выполнение PHP не выполняется, вы можете обрабатывать erros в файле php.ini.