Django CMS 不适用于 uWSGI

Posted

技术标签:

【中文标题】Django CMS 不适用于 uWSGI【英文标题】:Django CMS not working with uWSGI 【发布时间】:2017-11-02 22:43:00 【问题描述】:

我有一个用 Django CMS 开发的网站。

使用manage.py runserver 运行它时效果很好,但是当我尝试使用 nginx 和 uwsgi 运行它时,我收到以下错误:

在 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;
    

【问题讨论】:

【参考方案1】:

你需要在wsgi.ini中添加虚拟环境路径,类似于:

home = /var/www/myvenv

但不知道这样能不能解决

【讨论】:

以上是关于Django CMS 不适用于 uWSGI的主要内容,如果未能解决你的问题,请参考以下文章

为啥css文件不适用于html文件 - Django

Django-filters 不适用于 Viewset

django 多数据库路由不适用于多个模式

Javascript 不适用于 Django 模板继承

AJAX 不适用于 Django 应用程序

Volley 请求不适用于 Django 会话