2016-07-27 3 views
8

Ich hatte die folgende Arbeits Django Konfiguration:Apache2 und Kontextpfad für den virtuellen Host mit Django und AngularJS

WSGIScriptAlias//MyDjangoProjectFolder/MyDjangoProject/wsgi.py 
WSGIPythonPath /MyDjangoProjectFolder 

<Directory /MyDjangoProjectFolder/MyDjangoProject> 
    <Files wsgi.py> 
     Order deny,allow 
     Require all granted 
    </Files> 
</Directory> 

Alias /base_context_path/static/ /MyDjangoProjectFolder/static/ 

<Directory /MyDjangoProjectFolder/static> 
    Require all granted 
</Directory> 

Django reagiert auf <ip>/base_context_path/rest (für Rest-APIs von Frontend aufgerufen) und <ip>/base_context_path/admin (für Verwaltung, die verwendet base_context_path/statisch). Also alles, was von Django benötigt wird, ist <ip>/base_context_path/*.

Jetzt muss ich eine Website in Angular auf dem gleichen Apache2 entwickelt bereitstellen, also versuche ich zu verstehen, wie es funktioniert. Ich habe einen Domain-Namen für diese Website (mydomainname.org), aber keinen dedizierten für die Django-Anwendung. Wenn ich meinen Domain-Namen besuche, würde ich erwarten, dass meine Website erscheint.

Dies ist mein Versuch, für meine Website:

<VirtualHost *:80> 
    ServerName mydomainname.org 
    DocumentRoot /MyWebSiteFolder 
    DirectoryIndex index.html 
<Directory "/MyWebSiteFolder"> 
# redirect rules for managing AngularJS 
    </Directory> 
</VirtualHost> 

Es funktioniert nicht (403).

Für meine Django-Anwendung, ist dies die virtuelle Host-I erstellt, die nicht so gut funktioniert (403):

<VirtualHost *:80> 
ServerName mydomainname 
Alias /base_context_path/static/ /MyDjangoProjectFolder/static 

WSGIScriptAlias//MyDjangoProjectFolder/MyDjangoProject/wsgi.py 

WSGIDaemonProcess MyDjangoProject python-path=/MyDjangoProjectFolder:/usr/local/lib/python2.7/site-packages 
WSGIProcessGroup MyDjangoProject 


<Directory /MyDjangoProjectFolder/static> 
     Options -Indexes 
    Require all granted 
</Directory> 

So bin ich irgendwie stecken.

+1

Ich würde empfehlen, nginx mit django/uwsgi zu verwenden. Wenn Sie versuchen möchten, schauen Sie sich diese [link] (https://www.digitalcean.com/community/tutorials/how-to-serve-django-applications-with-uwsgi-and-nginx-on-ubuntu- 14-04) – Aki003

+0

Ist das ein Tippfehler für Ihren ServerName in der Django Virtualhost Config? Ich habe erwartet, dass es Ihr voll qualifizierter Domainname ist ... (Und ich nehme an, Sie haben das Tag virtualhost auch geschlossen.) –

Antwort

0

Für die Verzeichnis Sie die Folgerichtlinie hinzufügen müssen:

Require all granted 

oder einem Äquivalent für den Zugriff auf das Verzeichnis. Apache hat möglicherweise keinen Zugriff darauf, dieses Verzeichnis anzuzeigen oder für den Zugriff darauf konfiguriert zu sein. Sie müssen auch sicherstellen, dass Apache über Berechtigungen zum Lesen, Schreiben und Ausführen verfügt.

Überprüfen Sie auch die Apache Protokolle für zusätzliche Informationen über den Fehler (403), die passiert.

Ich würde auch empfehlen, wie Aki003, mit nginx da es einfacher ist und mit uwsgi verwenden zu konfigurieren.

Verwandte Themen