Python / Django / Apache2 / WSGI / UserDir / Conda:Django

时间:2017-01-31 17:06:54

标签: python django apache wsgi conda

我想在Linux服务器(Debian)上运行2个django应用程序。这两个项目使用django命令runserver在我的电脑和服务器上运行良好。这是我到目前为止所做的:

我激活了userdir:

sudo a2enmod userdir

我创建了两个用户:

sudo useradd -g www-data -m user1
sudo useradd -g www-data -m user2su

然后我创建了我的两个conda环境,从文件导入,与我的用户同名。我创建了两个目录,我放置了我的django项目/var/www/users/user1/var/www/users/user2

然后我为每个用户创建一个conf文件:

sudo nano /etc/apache2/conf-available/user1.conf

包含以下内容

WSGIDaemonProcess user1 user=user1 home=/var/www/users/user1 processes=1 threads=3 display-name=%{GROUP} python-path=/var/www/users/user1 python-home=/home/developer/anaconda3/envs/user1/lib/python3.4/site-packages
WSGIScriptAlias /~user1 /var/www/users/user1/user1/user1/wsgi.py process-group=user1
WSGISocketPrefix /var/run/wsgi
<Directory /var/www/users/user1>
        WSGIProcessGroup user1
</Directory>

developer是用于在服务器上进行开发的用户 我还将这些行添加到我的apache2.conf文件中:

UserDir disabled
UserDir enabled user1 user2
UserDir /var/www/users
<Directory /var/www/users>
AllowOverride FileInfo AuthConfig Limit
Options +MultiViews +SymLinksIfOwnerMatch +ExecCGI -Includes -Indexes
AddHandler wsgi-script wsgi
Order allow,deny
Allow from all
</Directory>

我尝试使用包管理器安装wsgi,或者直接从相应的conda环境中的源安装wsgi。我总是收到以下错误:

from django.core.wsgi import get_wsgi_application
ImportError: No module named 'django'

上面一点:

mod_wsgi: Compiled for Python/3.5.1+.
mod_wsgi: Runtime using Python/3.5.2.

你对我做错了什么有所了解吗?

1 个答案:

答案 0 :(得分:1)

通过阅读mod_wsgi文档,我取得了最大的成功。 Apache / Python无法沟通的原因可能有很多,而Graham Dumpleton的mod_wsgi文档是最好的资源。

modwsgi readthedocs install

您确实需要花时间研究如何为目标操作系统安装mod_wsgi。