Django und mod_wsgi

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Dienstag 31. März 2009, 14:13

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?
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Dienstag 31. März 2009, 14:27

Benutzeravatar
Mawilo
User
Beiträge: 446
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Mittwoch 1. April 2009, 07:21

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
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Mittwoch 1. April 2009, 08:42

mod_wsgi + apache ist jetzt auch Teil der offiziellen Dokumentation.

Stefan
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Mittwoch 1. April 2009, 09:34

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.
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Mittwoch 1. April 2009, 09:54

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
Antworten