Джанго: только пустая страница - PullRequest
3 голосов
/ 27 июля 2011

У меня есть сервер с Apache, и я хотел бы запустить сайт, написанный на Django.Я пользователь mod_wsgi.Теперь у меня есть это подготовлено.Но ответ сервера пуст.И в журнале ошибок ничего нет.Вы знаете, в чем причина?

Если какой-то файл может помочь (* .wsgi, settings.py), я добавлю его.

Prochazky.wsgi

import os
import sys
import site

os.environ['PYTHON_EGG_CACHE'] = '/home/prochazky/venv/.python-eggs'

site.addsitedir('/home/prochazky/venv/lib/python2.6/site-packages')

os.environ['DJANGO_SETTINGS_MODULE'] = 'Prochazky.settings'

sys.path.append('/home/prochazky/')
sys.path.append('/home/prochazky/Prochazky/')

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Apache vhost:

<VirtualHost *:80>
    WSGIScriptAlias / /home/prochazky/Prochazky/Prochazky.wsgi
    ServerName testing.prochazky.net
    DocumentRoot /home/prochazky

    ErrorLog /home/prochazky/wsgi.log
</VirtualHost>

Ответы [ 3 ]

7 голосов
/ 27 июля 2011

Попытка заставить программу hello world работать первой, а не Django.Смотрите:

http://code.google.com/p/modwsgi/wiki/WhereToGetHelp?tm=6#Conference_Presentations

и читайте:

http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

Возможно, вы загружаете mod_python в тот же Apache.Несовместимый mod_python будет вызывать именно этот симптом, просто сообщая об ошибке сегментации в основном журнале ошибок Apache.


UPDATE 1

Загружаете ли вы mod_php в тот же Apache?Иногда он может иметь конфликтующие требования к общей библиотеке и вызывать сбой.Если вы также загружаете его, отключите его из конфигурации Apache.

Также попробуйте установить:

WSGIApplicationGroup %{GLOBAL}

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

Однако вам действительно нужно более внимательно изучить основной журнал ошибок Apache, а не виртуальный хост.Запустите команду tail -f, когда вы делаете запрос, и убедитесь, что вы видите там сообщения, в частности, ошибку сегментации или подобное сообщение.Такое сообщение о сбое процесса и создании пустой страницы не будет отображаться в журнале ошибок виртуального хоста.

1 голос
/ 27 июля 2011

Возможно ли, что файл шаблона вашего корневого URL / представления пуст или оценивается как пустой?

Например, если у вас есть такой шаблон:

{% extends "base.html" %}
{% block content %}blah blah{% endblock %}

и base.html не использует блок "content", тогда блок контента из вашего шаблона не будет использоваться, и ваш шаблон будет пустым, несмотря на наличие контента.

0 голосов
/ 28 июля 2011

Это из моей настройки (имена изменены, чтобы защитить невинных виновных).

<VirtualHost *:80>
        ServerName site.domain.com 
        ServerAdmin webmaster@domain.com 

        WSGIScriptAlias / /home/user/site/django.wsgi

        <Directory /home/user/site/>
                Options FollowSymLinks
                AllowOverride None 
                Order allow,deny
                allow from all
        </Directory>
         ... etc etc etc.

Я думаю, вам нужно <directory>, чтобы разрешить серверу доступ к .wsgi.
Я действительно не гуру апачей, поэтому не воспринимайте этот пример как идеальный. (я думаю, что все, что нужно, это order Allow, deny и allow from all)

хороший сайт для проверки: http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango

...