2012-07-03 4 views
0

Je déploie deux sites django sur apache avec mod_wsgi. J'ai installé deux virtualenvs:Django apache + mod_wsgi configuration openPanel virtualenv

/home/user/virtualenv1 
/home/user/virtualenv2 

Maintenant, mon problème est en train de configurer les applications WSGI à utiliser ceux-ci, par exemple, j'ai:

/var/www/djangosite1 
/var/www/djangosite1/project1/wsgi.py 

/var/www/djangosite2 
/var/www/djangosite2/project2/wsgi.py 

Mon apache est configuré par l'intermédiaire openPanel donc j'ai mes VirtualHosts inclus comme ceci:

/etc/apache2/openpanel.d/project1.com.inc/django.conf

<VirtualHost *:80> 
ServerName project1 

WSGIDaemonProcess project1 user=user group=www-data processes=2 threads=25 python-path=/home/user/virtualenv1/lib/python2.6/site-packages 
WSGIProcessGroup project1 
</VirtualHost> 

/etc/apache2/openpanel.d/project2.com.inc/django.conf

<VirtualHost *:80> 
ServerName project2 

WSGIDaemonProcess project2 user=user group=www-data processes=2 threads=25 python-path=/home/user/virtualenv2/lib/python2.6/site-packages 
WSGIProcessGroup project2 
</VirtualHost> 

Maintenant, je redémarre apache:

service apache2 reload 

Ce qui ne me donne pas d'erreur , la queue suivante I le journal des erreurs et visiter mon project.com

tail -f /var/log/apache2/error.log 

ce qui me donne cette erreur

ImportError: No module named south 

Lorsque j'installe le sud sur mon système (pas dans un virtualenv) tous les travaux, mais biensur l'idée est de ne pas contaminer le système, mais utiliser un env virtuel séparé pour chaque site.

Je pense que je manque l'évidence ..

+0

Si vous 'activate' un virtualenv' runserver' faire chaque des sites fonctionnent? – rockingskier

+0

Cette question est un doublon de http://serverfault.com/questions/404079/django-apache-mod-wsgi-with-virtualenv –

Répondre

0

Peut-être que vous avez besoin de vérifier votre chemin actuel vers le sud sur virtualenv et ajoutez à votre sys.path précédemment.

+0

ne devrait-il pas suffire d'ajouter le chemin vers/home/user/virtualenv1/lib /python2.6/site-packages où sud est installé –

+0

>>> import sud

0

Essayez d'activer virtualenv dans le fichier wsgi plutôt que d'ajouter des packages de site dans le vhost.

Ajoutez ce qui suit en haut de vos fichiers wsgi.

# Start the correct virtualenv 
activate_this = '/home/user/virtualenv1/bin/activate_this.py' 
execfile(activate_this, dict(__file__=activate_this)) 

(Je ne sais pas si cela est la façon officielle de faire des choses, mais certainement quelque chose que je leur ai eu de travail à plusieurs reprises.)

Questions connexes