2012-07-03 136 views
0

我使用mod_wsgi在apache上部署了兩個django站點。我已經安裝了兩個virtualenvs:Django apache + mod_wsgi openPanel virtualenv設置

/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 

我的Apache通過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的想法是不污染系統,而是使用一個單獨的虛擬ENV爲每個站點。

我想我錯過了明顯..

+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

>>>導入南部

0

嘗試在wsgi文件中啓用virtualenv,而不是在虛擬主機中添加站點包。

將以下內容添加到您的wsgi文件的頂部。

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

(我不知道這是做事情的正式方法,但它肯定是我曾經工作過很多次。)