Django CMS 不支持 uWSGI
Django CMS not working with uWSGI
我在 Django CMS 中开发了网站。
当运行将它与manage.py runserver
结合使用时它工作得很好,但是当我尝试运行它与nginx和uwsgi结合时我得到以下错误:
view must be a callable or a list/tuple in the case of include().
我认为问题可能出在我 运行 virtualenv
.
中的 django cms
我为另一个 django 项目使用了相同的 conf 文件,但它不在 virtualenv 中
我在我的 virtualenv 中启动了 uwsgi。
我的wsgi.ini:
[uwsgi]
chdir = /var/www/user.name/mysite
module = mysite.wsgi
#home = /var/www/user
master = true
processes = 10
socket = /var/www/user/mysite/mysite.sock
chmod-socket = 666
vcuum = true
我的 nginx 配置文件
upstream django {
server unix:///var/www/user/mysite/mysite.sock;
}
server{
# listen on port
listen 80 default_server;
listen [::]:80 default_server;
server_name example.name www.example.name;
return 301 https://$server_name$request_uri;
}
server{
#Default server?
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name example.name www.example.name;
charset utf-8;
client_max_body_size 75M;
ssl_certificate /etc/letsencrypt/live/user/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/user/privkey.pem;
include snippets/ssl-params.conf;
location ^~ /.well-known{
allow all;
alias /var/www/user/.well-known;
}
location /static {
alias /var/www/user/mysite/mysite/static;
}
location / {
uwsgi_pass django;
include /var/www/user/mysite/uwsgi_params;
}
}
您需要将虚拟环境路径添加到 wsgi.ini,类似于:
home = /var/www/myvenv
但是不知道这样能不能解决
我在 Django CMS 中开发了网站。
当运行将它与manage.py runserver
结合使用时它工作得很好,但是当我尝试运行它与nginx和uwsgi结合时我得到以下错误:
view must be a callable or a list/tuple in the case of include().
我认为问题可能出在我 运行 virtualenv
.
我为另一个 django 项目使用了相同的 conf 文件,但它不在 virtualenv 中
我在我的 virtualenv 中启动了 uwsgi。
我的wsgi.ini:
[uwsgi]
chdir = /var/www/user.name/mysite
module = mysite.wsgi
#home = /var/www/user
master = true
processes = 10
socket = /var/www/user/mysite/mysite.sock
chmod-socket = 666
vcuum = true
我的 nginx 配置文件
upstream django {
server unix:///var/www/user/mysite/mysite.sock;
}
server{
# listen on port
listen 80 default_server;
listen [::]:80 default_server;
server_name example.name www.example.name;
return 301 https://$server_name$request_uri;
}
server{
#Default server?
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name example.name www.example.name;
charset utf-8;
client_max_body_size 75M;
ssl_certificate /etc/letsencrypt/live/user/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/user/privkey.pem;
include snippets/ssl-params.conf;
location ^~ /.well-known{
allow all;
alias /var/www/user/.well-known;
}
location /static {
alias /var/www/user/mysite/mysite/static;
}
location / {
uwsgi_pass django;
include /var/www/user/mysite/uwsgi_params;
}
}
您需要将虚拟环境路径添加到 wsgi.ini,类似于:
home = /var/www/myvenv
但是不知道这样能不能解决