Проблема с настройкой django на Apache - PullRequest
4 голосов
/ 15 августа 2010

Это, наверное, действительно просто. Но я думаю, что я слишком новичок в WSGI и Django, чтобы понять это самостоятельно. У меня есть новый блестящий проект Django на виртуальной машине Ubuntu, размещенной в / var / www / mysite. Проект был создан с

django-admin startproject mysite

Я следую инструкции по настройке WSGI, поэтому я создал папку ./apache, внутри которой я поместил этот файл, django.wsgi:

import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = '/var/www/mysite/mysite.settings'

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

Затем я добавил эту строку конфигурации в конфигурацию Apache:

WSGIScriptAlias / /var/www/mysite/apache/django.wsgi

Когда я пытаюсь попасть на сайт, ничего не возвращается. Соединение просто зависает. Это в моем access.log:

192.168.2.116 - - [15/Aug/2010:14:09:02 -500] "GET / HTTP/1.1" 500 639 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8

Так что он попал на сайт. Но кто-то ничего не делает. В файле errors.log ошибок нет.

У кого-нибудь есть идеи?

Ответы [ 2 ]

2 голосов
/ 16 августа 2010

вопиющая ошибка в исходном вопросе заключается в том, что:

os.environ['DJANGO_SETTINGS_MODULE'] = '/var/www/mysite/mysite.settings'

должно быть:

sys.path.append('/var/www')
sys.path.append('/var/www/mysite')

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

То есть модуль настроек Django должен быть путем к пакету Python, а НЕабсолютный путь к файловой системе.Принятый ответ даже не указывает на это, а просто дает другой набор кода для использования без объяснения.

Кроме того, вам нужно установить путь поиска модуля Python, т.е. sys.path, чтобыPython может найти файл настроек, указанный в этой переменной среды.

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

1 голос
/ 15 августа 2010

Разве вы не пропустили путь к своему приложению Django? У моего app.wsgi есть это:

import os, sys
sys.path.append('/usr/local/src/django-1.2') # django is outside default path
sys.path.append('/usr/local/src/django-photologue-2.2') # app i'm using
sys.path.append('/var/www/mysite')

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
# this is regular python import, so my settings are physically
# here: /var/www/mysite/settings.py

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...