2016-08-22 7 views
1

verwende ich Python 3.5 mit virtualenv, und ich versuche es eine Verbindung mit mod_wsgiPython 3.5 und mod_wsgi

Exception occurred processing WSGI script '/home/myapp/my_app/my_app/wsgi.py'. 
Traceback (most recent call last): 
File "/home/myapp/my_app/my_app/wsgi.py", line 12, in <module> 
from django.core.wsgi import get_wsgi_application 
ImportError: No module named 'django' 

Apache config:

... 
DocumentRoot /home/myapp/my_app/ 
WSGIScriptAlias//home/myapp/my_app/my_app/wsgi.py 
WSGIDaemonProcess python-path=/home/myapp/my_app/:/home/myapp/myapp_venv/lib/python3.5/site-packages:/home/myapp 

<Directory /home/myapp/my_app/ad_server> 
    <Files wsgi.py> 
    Require all granted 
    </Files> 
</Directory> 
<Location "/"> 
    Require all granted 
</Location> 
Alias /static /home/myapp/my_app/static 
... 

Und wsgi

from django.core.wsgi import get_wsgi_application 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_app.settings") 

application = get_wsgi_application() 

Was Ich mache falsch?

+0

Mögliches Duplikat von [django apache configuration mit WSGIDaemonProcess funktioniert nicht] (http://stackoverflow.com/questions/38284814/django-apache-configuration-with-wsgidaemonprocess-not-working) – e4c5

Antwort

1

Sie vermissen den Prozess Gruppennamen für WSGIDaemonProcess und auch eine entsprechende WSGIProcessGroup Richtlinie oder process-group Option WSGIScriptAlias fehlt. Selbst wenn der Name der Prozessgruppe hätte, würde die WSGI-Anwendung nicht in der Daemon-Prozessgruppe ausgeführt werden und weiß daher nichts über die virtuelle Umgebung.

Verwendung:

WSGIDaemonProcess my_app python-home=/home/myapp/myapp_venv python-path=/home/myapp/my_app 
WSGIScriptAlias//home/myapp/my_app/my_app/wsgi.py process-group=my_app application-group=%{GLOBAL} 

Die Richtlinien müssen in dieser Reihenfolge sein, so stellen Sie sicher, WSGIDaemonProcess Richtlinie zuerst kommt, wenn process-group Option WSGIScriptAlias verwenden.