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('',)