2010-01-10 49 views
5

thể trùng lặp:
Django Unhandled ExceptionLàm thế nào để bạn theo dõi 500 lỗi máy chủ với Apache + mod_python + Django?

tôi nhận được một cách ngẫu nhiên 500 lỗi máy chủ và cố gắng để chẩn đoán vấn đề. Cách cài đặt:

Apache + mod_python + Django

trang 500.html của tôi đang được phục vụ bởi Django, nhưng tôi không có đầu mối những gì đang gây ra lỗi. Các tệp access.log và error.log Apache của tôi không chứa bất kỳ thông tin gỡ lỗi có giá trị nào, ngoài việc hiển thị yêu cầu trả về 500.

Có một bản ghi lỗi python hay python chung ở đâu đó (máy chủ Ubuntu) không?

Cảm ơn!

Trả lời

3

Có, bạn nên có một mục nhập trong apache của bạn confs như nơi mà các bản ghi lỗi cho máy chủ ảo. Ví dụ tên của máy chủ ảo của tôi là djangoserver, và trong etc/apache2/sites-enabled tập tin của tôi// djangoserver là dòng

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

Mặc dù bây giờ mà tôi đọc lại câu hỏi của bạn, nó xuất hiện bạn đã có apache đăng nhập được chăm sóc. Tôi không tin rằng có bất kỳ bản ghi riêng biệt cho mod_python hoặc python chính nó.

Đây có phải là thiết lập sản xuất không?

Nếu không, bạn có thể muốn bật Debug mode và sau đó Django tạo màn hình rất chi tiết với thông tin lỗi. Trong settings.py của dự án của bạn, hãy đặt

DEBUG = True 
TEMPLATE_DEBUG = DEBUG 

để vô hiệu hóa màn hình lỗi 500 chung và xem chi tiết phân tích.

+0

Cảm ơn bạn đã phản hồi. Tôi đã đọc nhật ký lỗi Apache, nhưng thông tin không phải là rất có giá trị. Vâng, đây là môi trường sản xuất nên tôi không muốn tắt DEBUG. Phần khó khăn là tôi không thấy lỗi, nhưng khách hàng là ngẫu nhiên. Vì vậy, tôi đang cố gắng chẩn đoán hồi tố. Ước mơ của tôi là nhìn thấy một dấu vết ngăn xếp Python trong một bản ghi lỗi ở đâu đó. –

+0

Tôi biết những gì bạn có nghĩa là, tôi có tất cả các lỗi của tôi đăng nhập cho PHP như thế nhưng tôi không chắc chắn làm thế nào để làm cho nó đi với Django. Tôi cũng cần phải biết. phản ứng của diegueus9 dẫn đến một số thông tin tốt. – JAL

0

Salsa đưa ra một số gợi ý hay. Tôi sẽ thêm rằng máy chủ phát triển Django là một môi trường tuyệt vời để theo dõi những điều này xuống. Đôi khi tôi thậm chí chạy nó từ thư mục sản xuất (thở hổn hển) với ./manage.py runserver 0.0.0.0:8000 vì vậy tôi biết Tôi đang chạy cùng một mã.

Phải thừa nhận rằng đôi khi điều gì đó sẽ thất bại dưới Apache chứ không phải dưới máy chủ dev, nhưng đó là một gợi ý và của chính nó.

Các vấn đề liên quan