próbuję wdrożyć mod_wsgi z Apache do uruchomienia aplikacji Django, ale otrzymuję błąd 500 wewnętrzny błąd serwera logi apache pokazuje:docelowa WSGI skryptu nie może być załadowany jako moduł Pythona
[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] mod_wsgi (pid=16142): Exception occurred processing WSGI script '/home/user/bms/apache/django.wsgi'.
[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] Traceback (most recent call last):
[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] File "/home/user/bms/apache/django.wsgi", line 13, in <module>
[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] import django.core.handlers.wsgi
[Thu Jun 23 14:01:47 2011] [error] [client 152.78.95.64] ImportError: No module named django.core.handlers.wsgi
My apache wirtualnego gospodarz jest w następujący sposób:
<VirtualHost *:80>
DocumentRoot /home/user/bms
<Directory /home/user/bms>
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess bms user=user group=user processes=2 threads=25 python-path=/usr/local/lib/python2.7/site-packages
WSGIProcessGroup bms
WSGIScriptAlias//home/user/bms/apache/django.wsgi
</VirtualHost>
a odwołuje plik WSGI w moim app katalogu z 0777 uprawnienia:
import os
import sys
path = '/home/user/bms'
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'bms.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Słyszałem, że może to być spowodowane tym, że użytkownik apache nie ma odpowiednich uprawnień. Jednak nie mam pojęcia, jak to naprawić. Próbowałem także uruchomić demona z użytkownikiem www-data i to nie rozwiązało problemu.
EDIT:
Rozwiązałem to przez skopiowanie pliku hostów wirtualnych na domyślny, a następnie wyłączenie starego z a2dissite. Nie mam pojęcia, jak mogę to zrobić "prawidłowo" i ustawić tak, aby apache trafił do wirtualnego hosta, którego chcę.
Brakujące 'site.addsitedir ('/ path/to/your/venv/python2. 7/site-packages/') 'w twoim skrypcie konfiguracyjnym WSGI? – Campa