Django apache + mod_wsgi openPanel virtualenv设置

时间:2012-07-03 08:29:31

标签: python django apache mod-wsgi

我正在使用mod_wsgi在apache上部署两个django站点。我安装了两个virtualenvs:

/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中)时,所有工作都有效,但是当然,这个想法不是污染系统,而是为每个站点使用单独的虚拟环境。

我想我错过了那个明显的......

2 个答案:

答案 0 :(得分:0)

也许您需要检查virtualenv上当前的南路径并先前添加到您的sys.path。

答案 1 :(得分:0)

尝试在wsgi文件中启用virtualenv,而不是在vhost中添加site-packages。

将以下内容添加到wsgi文件的顶部。

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

(我不确定这是否是正式的做事方式,但这肯定是我多次工作过的事情。)