Kein Admin im Livesystem

Django, Flask, Bottle, WSGI, CGI…
Antworten
marla
User
Beiträge: 8
Registriert: Mittwoch 28. November 2012, 13:26

Hallo Leute,

ich möchte eine Django Seite bei einem Shared Host Anbieter ausliefern. Dort läuft CenOS6.x und Apache und ich kann dort '.htaccess' und fcgi benutzen. Ich habe pip und virtualenv installiert.

Die Architektur sieht so aus:

Code: Alles auswählen

~/
  /html/.htaccess
  /html/static
  /html/static/admin
  /html/static/js
  /html/static/css
  /html/static/imgs
  /my_app/manage.py
  /fcgi-bin/                 # link zum Apache
  /fcgi-bin/my_app.fcgi     
die url.py:

Code: Alles auswählen

  urlpatterns = patterns('',
      url(r'^admin/', include(admin.site.urls)),
      ...
.htaccess

Code: Alles auswählen

AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /fcgi-bin/my_app.fcgi/$1 [QSA,L]
my_app.fcgi

Code: Alles auswählen

#!/home/ME/venv/bin/python2.7
import sys, os

# Add a custom Python path.
sys.path.insert(0, "/home/MY/MY_APP/src")

# Switch to the directory of your project.
os.chdir("/home/ME/MY_APP/src")

# Set the DJANGO_SETTINGS_MODULE environment variable.
os.environ['DJANGO_SETTINGS_MODULE'] = "MY_APP.settings"

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")
Ich verweise im my_app.fcgi auf das Python im virtualenv. Der Admin steht mir live unter DOMAIN.de/admin/ nicht zur Verfügung und löst eine Server error aus. In der Entwicklungsumgebung funktioniert aber alles.

Die STATIC_URL ist gesetzt und mit collectstatic sind statischen dateinen gesammelt abgelegt. Die Statischen Dateien werden ausgeliefert, aber beim Admin steht mir nicht mal die URL zur verfügung.

Könnt Ihr mir nen Tipp geben? Ich such schon ne ganze Weile im Netz nach ner Lösung.
G,

marla
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo Marla,

wie sieht der Server-Error aus? Hast Du Zugriff auf die log-Dateien von apache?
Funktioniert fcgi bzw. python an sich?
Läuft ein Test-CGI-Python-Skript?

Grüße
Sirius
marla
User
Beiträge: 8
Registriert: Mittwoch 28. November 2012, 13:26

Sirius3 hat geschrieben: wie sieht der Server-Error aus? Hast Du Zugriff auf die log-Dateien von apache?

Funktioniert fcgi bzw. python an sich?
Läuft ein Test-CGI-Python-Skript?
Hi Sirius3,

die Seite an sich funktioniert, bei jeder Seite die nicht existiert bekomme ich einen 404 aber bei der admin url einen Error. (Ist damit das Test-CGI-Python-Skript von Tisch?)

Das Logfile dass ich sehen kann, wird von der aktuellen Konfiguration nicht benutzt.
G,

marla
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

das heißt django liefert die 404-Seiten aus, aber bei admin-Seite einen Fehler?
Oder sind die 404-Seiten von apache und der Fehler eine ander apache-Meldung?
Was steht da nun als Error?
marla
User
Beiträge: 8
Registriert: Mittwoch 28. November 2012, 13:26

Sirius3 hat geschrieben:das heißt django liefert die 404-Seiten aus, aber bei admin-Seite einen Fehler?
Was steht da nun als Error?
Die Startseite wird mit Content und css also mit Statischen Dateien angezeigt. Rufe ich eine Seite auf die nicht existiert, bekomme ich natürlich einen 404. Rufe ich die Admin URL auf, bekomme ich folgende Meldung:

Unhandled Exception

An unhandled exception was thrown by the application.
G,

marla
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Das steht im Log?

Ist der Debug-Modus in der setttings.py aktiviert?
marla
User
Beiträge: 8
Registriert: Mittwoch 28. November 2012, 13:26

sparrow hat geschrieben:Das steht im Log?

Ist der Debug-Modus in der setttings.py aktiviert?
Im Log steht:

Code: Alles auswählen

"GET /admin/ HTTP/1.1" 500 218 "-"
Debug ist False

In meiner Konfiguration wird Django ja von dem fcgi-Script gestartet. Gibt es da vielleicht ein Rechteproblem beim Aufruf des Admin?
G,

marla
BlackJack

@marla: Wie sind die Logs vom Apache denn bei Dir beziehungsweise Deinem Anbieter organisiert? Landet das alles in einer Datei? Oft gibt es zum Beispiel eine Trennung zwischen Zugriff- und Fehlerlogs. Die GET-Zeile würde im Zugrifflog landen, der Fehler aber nicht.
marla
User
Beiträge: 8
Registriert: Mittwoch 28. November 2012, 13:26

BlackJack hat geschrieben:@marla: Wie sind die Logs vom Apache denn bei Dir beziehungsweise Deinem Anbieter organisiert? Landet das alles in einer Datei? Oft gibt es zum Beispiel eine Trennung zwischen Zugriff- und Fehlerlogs. Die GET-Zeile würde im Zugrifflog landen, der Fehler aber nicht.
Ich sehe nur ein Logfile in meinem Log-Ordner.
G,

marla
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

marla hat geschrieben:Debug ist False
Dann schalte das Debuggind doch mal an. Vielleicht gibt es dann eine Aussagefähige Meldung im Browser.
marla
User
Beiträge: 8
Registriert: Mittwoch 28. November 2012, 13:26

sparrow hat geschrieben: Dann schalte das Debuggind doch mal an. Vielleicht gibt es dann eine Aussagefähige Meldung im Browser.
Tja da tut sich jetzt was. Ich habe mit 'Debug = True' folgende Meldung bekommen:

DoesNotExist at /admin/ Site matching query does not exist.

Dann habe ich die Sites abgeschaltet und das Admin login erscheint. Ich kann mich aber noch nicht Einloggen und es kommt auch kein Fehler.
Die Sites kann ich nicht abgeschaltet lassen weil ich sie für die Flatpages brauche.
G,

marla
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Der Fehler tritt dann auf wenn etwas aus der Datenbank selektiert werden soll, allerdings nicht vorhanden ist.
Verwendest du sites in deinem Projekt?
Hast du manuell etwas in der Datenbank verändert?
Einen Superuser hast du beim syncdb angelegt?
marla
User
Beiträge: 8
Registriert: Mittwoch 28. November 2012, 13:26

sparrow hat geschrieben:Der Fehler tritt dann auf wenn etwas aus der Datenbank selektiert werden soll, allerdings nicht vorhanden ist.
Verwendest du sites in deinem Projekt?
Ich verwende die Flatpages app die wiederum Sites braucht.
sparrow hat geschrieben:
Hast du manuell etwas in der Datenbank verändert?
Nein
sparrow hat geschrieben:
Einen Superuser hast du beim syncdb angelegt?
Ja, aber ich kann mich mit den Daten nicht im Admin einloggen.
Um den Admin-Login überhaupt zu sehen muss ich die Sites abschalten.
G,

marla
Antworten