Ich wurde auf mod_wsgi und apache anstatt mod_python verkauft. Ich habe alle Teile installiert (django, apache, mod_wsgi), aber ein Problem mit der Bereitstellung hatte.
Ich bin auf osx 10.5 mit Apache 2.2 und django 1.0b2, mod_wsgi-2.3
Meine Anwendung heißt tred.
Hier sind die relevanten Dateien: httpd-vhosts (in httpd-conf enthalten)
%Vor%mod_wsgi-handle.wsgi
%Vor%Wenn ich zu Ссылка gehe, erhalte ich eine Verzeichnisliste statt der gerenderten Website. Ich denke, ich habe die Tutorials richtig verfolgt, aber es ist offensichtlich nicht richtig. Was kann ich tun, damit dies funktioniert?
Beachten Sie, dass Alias- und WSGIScriptAlias-Anweisungen nicht die gleiche Priorität haben. Daher werden sie nicht in der Dateireihenfolge wie beschrieben verarbeitet. Stattdessen erhalten alle Alias-Anweisungen Vorrang vor WSGIScriptAlias-Anweisungen. Somit wäre es nicht von Bedeutung gewesen, wenn das Alias für '/' nach WSGIScriptAlias erschienen wäre, hätte es immer noch Vorrang.
Es funktioniert. Ich habe keine Ahnung warum, aber es tut es.
Für zukünftige Referenz:
Es funktioniert, weil Apache Alias-Direktiven in Reihenfolge verarbeitet und die erste Übereinstimmung verwendet. Es traf immer Alias /
, was alles entspricht, bevor WSGIScriptAlias
.
Aus der mod_alias
-Dokumentation :
Zuerst werden alle Redirects verarbeitet, bevor Aliase verarbeitet werden, und daher wird für eine Anfrage, die mit
Redirect
oderRedirectMatch
übereinstimmt, niemals Aliase angewendet. Zweitens werden die Aliase und Redirects in der Reihenfolge verarbeitet, in der sie in den Konfigurationsdateien erscheinen, wobei die erste Übereinstimmung Vorrang hat.
Folge diesem Tutorial - Ссылка
Sie versuchen, den Apache / var / www / Ordner und die Django App sowohl im root (/) zu hosten. Da die Alias-Direktive Vorrang vor WSGIScriptAlias hat, wird das Apache-Verzeichnis gerendert.
Sie können versuchen, die Django App unter / app zu hosten. Alternativ können Sie den Ordner / var / www / an einem anderen Ort wie / public
hosten