2010-01-10 19 views
5

Duplicar posible:
Django Unhandled Exception¿Cómo rastrear 500 errores del servidor con Apache + mod_python + Django?

Me estoy poniendo al azar 500 errores de servidor y tratando de diagnosticar el problema. La configuración es:

Apache mod_python + + Django

Mi página 500.html está siendo atendido por Django, pero no tengo ni idea de lo que está causando el error. Mis archivos Apache access.log y error.log no contienen ninguna información de depuración valiosa, además de mostrar la solicitud devuelta 500.

¿Hay algún mod_python o registro de error de python general en alguna parte (servidor Ubuntu)?

Gracias!

Respuesta

3

Sí, debe tener una entrada en su apache confs en cuanto a dónde está el registro de errores para el servidor virtual. Por ejemplo, el nombre de mi servidor virtual es djangoserver, y en mi archivo/etc/sites-enabled apache2// djangoserver es la línea

ErrorLog /var/log/apache2/djangoserver-errors.log 

Aunque ahora que vuelvo a leer su pregunta, parece que ya tiene el registro de Apache cuidado. No creo que haya ningún registro separado para mod_python o python.

¿Se trata de una configuración de producción?

Si no es así, es posible que desee activar Debug mode, y luego Django produce pantallas muy detalladas con la información del error. En settings.py de su proyecto, establezca

DEBUG = True 
TEMPLATE_DEBUG = DEBUG 

para deshabilitar las pantallas de error genéricas 500 y consulte el desglose detallado.

+0

Gracias por la respuesta. He leído el registro de errores de Apache, pero la información no es muy valiosa. Sí, este es un entorno de producción, por lo que preferiría no activar DEBUG. La parte difícil es que no estoy viendo los errores, pero los clientes son al azar. Así que estoy tratando de diagnosticar retroactivamente. Mi sueño sería ver una traza de Python en un registro de error en alguna parte. –

+0

Sé lo que quieres decir, tengo todos mis errores registrados para PHP de esa manera, pero no estoy seguro de cómo hacerlo funcionar con Django. Necesito saber también, en realidad. La respuesta de diegueus9 conduce a una buena información. – JAL

0

Salsa hace varias buenas sugerencias. Añadiría que el servidor de desarrollo de Django es un entorno excelente para rastrear estas cosas. A veces incluso lo ejecuto desde el directorio de producción (¡jade!) Con ./manage.py runserver 0.0.0.0:8000, así que Estoy ejecutando el mismo código.

Es cierto que a veces algo fallará en Apache y no en el servidor de desarrollo, pero eso es una pista en sí mismo.

Cuestiones relacionadas