我想在 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>
我尝试使用包管理器或直接从相应 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.
你知道我做错了什么吗?
最佳答案
我通过阅读 mod_wsgi 文档获得了最大的成功。 Apache/Python 无法通信的原因可能有很多,Graham Dumpleton 的 mod_wsgi 文档是最好的资源。
您确实需要花时间研究如何为目标操作系统安装 mod_wsgi。
关于Python/Django/Apache2/WSGI/UserDir/Conda : Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41963402/