2012-07-03 6 views
0

Я развертываю два сайта django на apache с mod_wsgi. Я установил два virtualenvs:Django apache + mod_wsgi openPanel virtualenv setup

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

Теперь моя проблема заключается в настройке WSGI приложений, чтобы использовать их, например, у меня есть:

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

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

Мой апач настраивается через openPanel поэтому у меня есть мои VirtualHosts включены как это:

/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> 

Теперь перезапустите Apache:

service apache2 reload 

Который не дает мне никаких ошибок , рядом я хвост журнал ошибок и посетить мой project.com

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

Что дает мне эту ошибку

ImportError: No module named south 

Когда я устанавливаю юг на моей системе (не в virtualenv) все работает, но Offcourse идея не загрязнять систему, но использовать отдельный виртуальный окр для каждого сайта.

Я думаю, что я пропускаю очевидное ..

+0

Если вы 'activate' в virtualenv и' runserver' сделать каждый сайтов работают? – rockingskier

+0

Этот вопрос является дубликатом http://serverfault.com/questions/404079/django-apache-mod-wsgi-with-virtualenv –

ответ

0

Может быть, вам нужно проверить текущий южный путь на virtualenv и добавить в sys.path ранее.

+0

не должно быть достаточно, чтобы добавить путь к/home/user/virtualenv1/lib /python2.6/site-packages, где юг установлен –

+0

>>> импорт юг <модуль 'юг' от '/home/user/lib/python2.6/site-packages/south/__ init __. pyc'> –

0

Попробуйте включить свой virtualenv в файле wsgi, а не добавлять пакеты-сайты в vhost.

Добавьте следующее в начало своих файлов wsgi.

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

(я не уверен, если это официальный способ делать вещи, но, конечно, то, что я уже работал много раз.)

Смежные вопросы