Mostrar error 500 en cualquier error en apache

Posible duplicado:
¿Cómo hacer que PHP configure el código de estado HTTP en 500 automáticamente en caso de cualquier condición de error? (incluidos aquellos que no pueden ser manejados por el usuario)

Quiero configurar Apache para que envíe al usuario una respuesta 500 con una página 500 personalizada cuando un script PHP genera un error fatal. Lo que tengo ahora es que imprimirá el error en línea con el contenido de la página que es bueno para el desarrollo pero no para la producción.

¿Cómo configuro Apache para enviar al usuario una respuesta 500 con una página personalizada?

Suponiendo que no solo desee enviar un encabezado 500 (lo cual es fácil), sino realmente desencadenar un error de 500 en el sistema de Apache, no parece haber una solución trivial.

Según esta pregunta , es el comportamiento predeterminado de PHP desde PHP 5.2.4 si:

  1. se produce un error fatal y
  2. el cuerpo del documento está vacío (Gordon encontró la entrada del registro de cambios aquí ).

No estoy seguro de cuán confiable es este comportamiento a largo plazo (es decir, cuando aparece PHP 6, etc.). No es una característica muy publicitada.

Aparte de eso, no conozco ninguna forma de provocar un 500 una vez que se ejecuta el script. Pregunté algo similar para 404s una vez. La respuesta proporcionada allí (redirigir a una URL predefinida y enviar un encabezado 500) puede ser lo mejor que pueda obtener, aunque eso, por supuesto, no se registrará.

yo diría que

 ErrorDocument 500 /some/page.php 

debería hacer el truco, o simplemente una buena página HTML si quiere estar seguro de que se renderiza correctamente, incluso cuando cosas extrañas impiden la renderización de páginas PHP.

Para activar la página de error, mire este anser: Cómo devolver un código HTTP 500 en cualquier error, no importa qué

Quiero hacer lo mismo, pero no creo que sea posible con la versión actual de PHP. Primero, hay un error donde 500 errores devuelven el estado 200 . Entonces, configurar ErrorDocument 500 en su archivo de configuración no tendrá efecto. Además, parece que no hay forma de acceder a la información de error (para visualización personalizada y registro) incluso si se puede redireccionar.

Disparar un error es fácil sin embargo. Solo agregue esto a un archivo PHP:

 throw new Exception();