我想在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.
你对我做错了什么有所了解吗?
答案 0 :(得分:1)
通过阅读mod_wsgi文档,我取得了最大的成功。 Apache / Python无法沟通的原因可能有很多,而Graham Dumpleton的mod_wsgi文档是最好的资源。
您确实需要花时间研究如何为目标操作系统安装mod_wsgi。