ubuntuusers.de

django mit apache2 und mod_python

Status: Ungelöst | Ubuntu-Version: Ubuntu
Antworten |

kurdt

Avatar von kurdt

Anmeldungsdatum:
4. Februar 2008

Beiträge: Zähle...

Wohnort: Maintal

Hallo.

Ich habe heute ein Problem mit Django und apache. Wenn ich mein Projekt nur über den django-server laufen lasse funkioniert es. Aber über den apache will es einfach nicht laufen.
Ich finde leider kein ordentliches Tutorial wo alles beschrieben ist.
Bis jetzt habe ich immer ein Apache auf Windows laufen gelassen, dort wusste ich auch einigermaßen welche Datei die richtige zum konfigurieren ist (Django habe ich aber leider auch nie über den apache zum laufen gebracht ☺ ). Hier in der Ubuntu-Umgebung weis ich nicht genau wo ich mein apache konfiguriere. http.conf ist leer, in /sites-available/default steht etwas. Ich habe in beiden versucht etwas zu machen, ging aber nicht.
Ich hoffe Ihr könnt mir helfen.

kurdt

(Themenstarter)
Avatar von kurdt

Anmeldungsdatum:
4. Februar 2008

Beiträge: 32

Wohnort: Maintal

Ich habe jetzt meine Frage nochmal im deutschen Python-Forum reingestellt. Wenn ich eine Lösung gefunden habe, werde ich diese auch hier posten.

Denga

Avatar von Denga

Anmeldungsdatum:
16. April 2007

Beiträge: 150

Wohnort: Kiel

Benutzt du eine Datenbank? Mit sqlite3 hatte ich auch Probleme. Datenbank auf mysql umgestellt und alles lief.

MfG

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

@Denga
Der OP hatte nach der Apache-Konfiguration gefragt.

@kurdt
Ein bisschen mehr Infos müssen schon her: Was hast du installiert, läuft den Apache fehlerfrei, läuft die Anwendung im Development-Server, etc.

kurdt

(Themenstarter)
Avatar von kurdt

Anmeldungsdatum:
4. Februar 2008

Beiträge: 32

Wohnort: Maintal

Installiert ist apache und mod_python. Der apache läuft sonst fehlerfrei und die Anwendung funtioniert auch mit dem Develoment-Server von django.
Und als Datenbank ist auch noch sqlite3 eingestellt. Zur Zeit liegt es auch an der Datenbank das es nicht funktioniert.

Der TB:

Traceback (most recent call last):

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1229, in _process_target
    result = _execute_target(config, req, object, arg)

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1128, in _execute_target
    result = object(arg)

  File "/usr/lib/python2.5/site-packages/django/core/handlers/modpython.py", line 189, in handler
    return ModPythonHandler()(req)

  File "/usr/lib/python2.5/site-packages/django/core/handlers/modpython.py", line 166, in __call__
    response = middleware_method(request, response)

  File "/usr/lib/python2.5/site-packages/django/contrib/flatpages/middleware.py", line 10, in process_response
    return flatpage(request, request.path)

  File "/usr/lib/python2.5/site-packages/django/contrib/flatpages/views.py", line 24, in flatpage
    f = get_object_or_404(FlatPage, url__exact=url, sites__id__exact=settings.SITE_ID)

  File "/usr/lib/python2.5/site-packages/django/shortcuts/__init__.py", line 46, in get_object_or_404
    return queryset.get(*args, **kwargs)

  File "/usr/lib/python2.5/site-packages/django/db/models/query.py", line 192, in get
    num = len(clone)

  File "/usr/lib/python2.5/site-packages/django/db/models/query.py", line 53, in __len__
    self._result_cache = list(self.iterator())

  File "/usr/lib/python2.5/site-packages/django/db/models/query.py", line 162, in iterator
    for row in self.query.results_iter():

  File "/usr/lib/python2.5/site-packages/django/db/models/sql/query.py", line 200, in results_iter
    for rows in self.execute_sql(MULTI):

  File "/usr/lib/python2.5/site-packages/django/db/models/sql/query.py", line 1465, in execute_sql
    cursor = self.connection.cursor()

  File "/usr/lib/python2.5/site-packages/django/db/backends/__init__.py", line 33, in cursor
    cursor = self._cursor(settings)

  File "/usr/lib/python2.5/site-packages/django/db/backends/sqlite3/base.py", line 113, in _cursor
    self.connection = Database.connect(**kwargs)

OperationalError: unable to open database file

(Sollte man im Forum für einen Traceback die Code-Umgebung, oder die Zitat-Umgebung nehmen???)

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

Die Code-Umgebung passt schon. Wegen der Länge des Tracebacks wäre allerdings ein Pastebin noch besser, dann stehen die langen Listings nicht beim Lesen im Weg. Zumal manche Pastebins wie beispielsweise das Lodgeit Python-Tracebacks auch farblich hervorheben können 😉

Der Fehler könnte drauf hindeuten, dass du die Datenbank nur mit relativem Pfad in der Konfiguration angeben hast. Das Problem dabei ist, dass der Apache ein anderes Arbeitsverzeichnis hat, und die Datenbank somit nicht findet.

Ich würde dir aber vielleicht sogar eher FastCGI empfehlen, zumindest ich persönlich finde das Setup da unkomplizierter...

kurdt

(Themenstarter)
Avatar von kurdt

Anmeldungsdatum:
4. Februar 2008

Beiträge: 32

Wohnort: Maintal

Danke. Wenn ich den Pfad absolut setzte funktioniert es halbwegs... Die media Datein werden noch nicht 'serviert'.
Kennst du ein Tutorial für FastCGI in apache mit django?

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

Die statischen Dateien musst du in der Apache-Konfiguration natürlich entsprechend eintragen. Wie das geht, steht in der Django-Dokumentation, die dir auch erklärt, wie man Django mit FastCGI betrieben wird.

kurdt

(Themenstarter)
Avatar von kurdt

Anmeldungsdatum:
4. Februar 2008

Beiträge: 32

Wohnort: Maintal

Danke. Werde ich mir mal anschauen. Ich schreibe dann obs geklappt hat.

Antworten |