2013-02-25 1 views
4

У меня проблема в OSQA. В любое время я пытаюсь ввести страницу пользователя, например, «Ошибка 500»: http://turkrusforum.com/users/2/mertnuhoglu/Как настроить параметры псевдонима Apache, чтобы позволить панели инструментов отладки django работать правильно?

Я проверил журналы ошибок. Но там ничего не было. Я хочу установить django-debug-toolbar и отладить проблему больше.

Я положил DEBUG = True и INTERNAL_IPS в settings.py. Но я все еще не вижу панель инструментов отладки.

Here В нем говорится, что под Apache эта проблема может быть связана с настройками псевдонима.

Вот VirtualHost определение в моем httpd.conf файле:

<VirtualHost *:26903> 
    ServerName turkrusforum.com 
    KeepAlive Off 
    WSGIDaemonProcess turkrusforum.com processes=1 python-path=/home/mertnuhoglu/webapps/otrf:/home/mertnuhoglu/webapps/otrf/osqa:/home/mertnuhoglu/webapps/otrf/lib/python2.6 threads=1 inactivity-timeout=360 display-name=[wsgi-otrf]httpd 
    WSGIProcessGroup turkrusforum.com 
    WSGIScriptAlias//home/mertnuhoglu/webapps/otrf/otrf.wsgi 
</VirtualHost> 

кто-нибудь может помочь мне узнать, как настроить параметры псевдонимов?

+1

Какая у вас настройка INTERNAL_IPS? –

ответ

2

Несколько вещей, которые нужно иметь в виду:

  1. Django_Toolbar отображается только при INTERNAL_IPs совпадения IP-адрес компьютера, запрашивающего страницу.

  2. Он смотрит заголовок HTTP_X_FORWARDED_FOR, который должен установить модуль WSGI Apache (но может и не быть, или может быть установлен неверно).

  3. Если он не находит этот заголовок, он смотрит на REMOTE_ADDR, который в настройках прокси всегда 127.0.0.1.

Таким образом, вам необходимо убедиться, что ваша установка фактически устанавливает HTTP_X_FORWARDED_FOR правильно.

Легкий способ сделать вид и просто сделать это:

def check_forward(request, *args, **kwargs): 
    return HttpResponse(request.META.get('HTTP_X_FORWARDED_FOR', None)) 

Карта, что URL и посмотреть, что ли заголовок быть установлен правильно.

+0

Я положил этот вид. Результатом является «212.253.42.119», который является адресом ip, который я ввел в 'INTERNAL_IPS = ('212.253.42.119',)' –

1

, когда вы нажимаете правой кнопкой мыши на веб-странице и проверяете, вы можете найти в хром-консоли, что некоторые css и html-файлы имеют 404 в качестве ответа.

/static/debug_toolbar/css/toolbar.css 
/static/debug_toolbar/js/toolbar.js 
/static/debug_toolbar/img/ajax-loader.gif 

Это статические активы, необходимые для панели инструментов django для отображения панели. Указанные ресурсы не найдены в статической папке моего проекта. С большей отладкой я обнаружил, что панель инструментов django-debug, добавленная в установленное приложение, служит для статического содержимого в окне разработки. Когда проект django размещен на apache, все статические файлы по умолчанию имеют псевдоним в статической папке. Поскольку файлы, относящиеся к django_toolbar, не существуют, сервер возвращает ошибку 404, не найденную. Это можно решить, скопировав debug_toolbar, который находится в Python27 \ Lib \ site-packages \ debug_toolbar \ static в статическую папку проекта.