2 Stimmen

Warum liefert meine Django-Installation eine leere HTTP-Antwort?

Letzte Aktualisierung: Es gab einen Irrläufer LoadModule python_module modules/mod_python.so die im Widerspruch stehen zu mod_wsgi . Nach dem Entfernen dieses LoadModule funktionierte alles wieder.


Ich bin einen Produktionsserver mit Django einrichten und folgen Sie mit das Django-Tutorial und erhalten dennoch eine leere Seite (oder, wie Chrome gerne berichtet, Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error. ), wenn ich besuche http://domain.com/mysite .

# httpd.conf

LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias /mysite /home/gibson/mysite/django.wsgi

# django.wsgi

import os
import sys

sys.path.append('/home/gibson')

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

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

Ich habe auch versucht, eine sehr einfache mod_wsgi-Testanwendung zu verwenden (wie in der mod_wsgi wiki ), die sich wie erwartet verhält:

# django.wsgi (test)

def application(environ, start_response):
    status = '200 OK'
    output = 'i live!'
    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)
    return [output]

Gibt es noch etwas, das ich vergessen haben könnte? Ich danke Ihnen für Ihren Einblick.

kleines Update: Aus Spaß habe ich mein Apache error_log überprüft:

[notice] child pid 18356 exit signal Segmentation fault (11)

Das Googeln nach diesem Edelstein ergab einiges über den Caching-Mechanismus von Django (den ich nicht verwende) und Konflikte mit dem Laden des mod_python-Moduls (das ich in meiner httpd.conf auskommentiert habe).

Update 2: (Kommentare der Kürze halber entfernt)

# settings.py

DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = (
)
MANAGERS = ADMINS
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', 
        'NAME': '/home/gibson/mysite/sqlite3.db',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    }
}
TIME_ZONE = 'America/Chicago'
LANGUAGE_CODE = 'en-us'
SITE_ID = 1
USE_I18N = True
USE_L10N = True
MEDIA_ROOT = ''
MEDIA_URL = ''
ADMIN_MEDIA_PREFIX = '/media/'
SECRET_KEY = '[redacted]'
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
)
MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)
ROOT_URLCONF = 'mysite.urls'
TEMPLATE_DIRS = (
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
)

# urls.py

from django.conf.urls.defaults import *
urlpatterns = patterns('',)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X