Seite 1 von 1

Django und mod_wsgi

Verfasst: Dienstag 31. März 2009, 14:13
von würmchen
Ich hab jetzt längere Zeit gesucht und auch viele Topics gefunden, die ähnliche Probleme beschreiben mit mod_wsgi usw. aber ich komm einfach nicht weiter und hoffe dass mir jemand helfen kann.

Apache läuft mit wsgi ohne Probleme, wenn ich jetzt auf mein Django Projekt verlinken will geht es nicht mehr...

Hier mal mein wsgi File, was nicht funktioniert:

Code: Alles auswählen

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

import os, sys
sys.path.append('/home/dejungma/stuff/fh/diplomarbeit/django')
os.environ['DJANGO_SETTINGS_MODULE'] = 'bifinterface.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()
Der Bereich oben, der funktioniert, habe ich zum testen benutzt.

Generell versuche ich mich an die Configuration Guideline vom modwsgi wiki zu halten.

im Apache log kommen folgenden Fehler:
[Tue Mar 31 13:48:51 2009] [info] mod_wsgi (pid=25102): Create interpreter 'test.dejung.net|/myapp'.
[Tue Mar 31 13:48:51 2009] [info] [client 192.168.178.24] mod_wsgi (pid=25102, process='', application='test.dejung.net|/myapp'): Loading WSGI script '/var/www/test.dejung.net/wsgi-scripts/myapp.wsgi'.
[Tue Mar 31 13:48:51 2009] [error] [client 192.168.178.24] mod_wsgi (pid=25102): Exception occurred processing WSGI script '/var/www/test.dejung.net/wsgi-scripts/myapp.wsgi'.
[Tue Mar 31 13:48:51 2009] [error] [client 192.168.178.24] Traceback (most recent call last):
[Tue Mar 31 13:48:51 2009] [error] [client 192.168.178.24] File "/usr/lib/python2.5/site-packages/django/core/handlers/wsgi.py", line 205, in __call__
[Tue Mar 31 13:48:51 2009] [error] [client 192.168.178.24] self.load_middleware()
[Tue Mar 31 13:48:51 2009] [error] [client 192.168.178.24] File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py", line 31, in load_middleware
[Tue Mar 31 13:48:51 2009] [error] [client 192.168.178.24] for middleware_path in settings.MIDDLEWARE_CLASSES:
[Tue Mar 31 13:48:51 2009] [error] [client 192.168.178.24] File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 28, in __getattr__
[Tue Mar 31 13:48:51 2009] [error] [client 192.168.178.24] self._import_settings()
[Tue Mar 31 13:48:51 2009] [error] [client 192.168.178.24] File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 59, in _import_settings
[Tue Mar 31 13:48:51 2009] [error] [client 192.168.178.24] self._target = Settings(settings_module)
[Tue Mar 31 13:48:51 2009] [error] [client 192.168.178.24] File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 94, in __init__
[Tue Mar 31 13:48:51 2009] [error] [client 192.168.178.24] raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
[Tue Mar 31 13:48:51 2009] [error] [client 192.168.178.24] ImportError: Could not import settings 'bifinterface.settings' (Is it on sys.path? Does it have syntax errors?): No module named bifinterface.settings

Wenn ich aber in der Konsole alles mit python teste, gibt es keine Fehler:

Code: Alles auswählen

$ python
Python 2.5.2 (r252:60911, Mar 18 2009, 11:17:40) 
[GCC 4.1.2 (Gentoo 4.1.2 p1.0.2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os, sys
>>> sys.path.append('/home/dejungma/stuff/fh/diplomarbeit/django')
>>> os.environ['DJANGO_SETTINGS_MODULE'] = 'bifinterface.settings'
>>> 
>>> import django.core.handlers.wsgi
>>> application = django.core.handlers.wsgi.WSGIHandler()
>>> application
<django.core.handlers.wsgi.WSGIHandler object at 0xb7c99f2c>
>>> 
Ordnerrechte sind eigentlich richtig gesetzt:
$ pwd
/home/dejungma/stuff/fh/diplomarbeit/django
$ ll
drwxr-xr-x 13 dejungma apache 4,0K 27. Mär 12:55 bifinterface/

Hat jemand einen Tipp für mich was ich noch versuchen könnte?

Verfasst: Dienstag 31. März 2009, 14:27
von nemomuk

Verfasst: Mittwoch 1. April 2009, 07:21
von Mawilo
Hast du den Pfad zur Django-Installation zugefügt?

z.B:

Code: Alles auswählen

import os, sys
sys.path.append('/usr/local/lib/python2.6/site-packages/django')
sys.path.append('/home/dejungma/stuff/fh/diplomarbeit/django')
os.environ['DJANGO_SETTINGS_MODULE'] = 'bifinterface.settings'

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

Verfasst: Mittwoch 1. April 2009, 08:42
von sma
mod_wsgi + apache ist jetzt auch Teil der offiziellen Dokumentation.

Stefan

Verfasst: Mittwoch 1. April 2009, 09:34
von apollo13
Allerdings in einem Weg, der dir bei etwas Fehlkonfiguration den Server abschießt... Ich empfehle Daemon Mode, falls man nicht weiß wie mod_wsgi wirklich arbeitet.

Verfasst: Mittwoch 1. April 2009, 09:54
von würmchen
Mawilo hat geschrieben:Hast du den Pfad zur Django-Installation zugefügt?

z.B:

Code: Alles auswählen

import os, sys
sys.path.append('/usr/local/lib/python2.6/site-packages/django')
sys.path.append('/home/dejungma/stuff/fh/diplomarbeit/django')
os.environ['DJANGO_SETTINGS_MODULE'] = 'bifinterface.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler() 
Mawilo
Hab ich schon versucht, ohne Erfolg, aber der Fehler tritt auch schon vorher auf, wenn er settings importieren will. Das sollte ja noch ohne django gehen.

Ich werd mich mal duch die neue Doku durchkauen und das was mir Scheniderweisse geschickt hat.... Danke schonmal