nginx + uwsgi + django 打开 uwsgi_params 失败(13:权限被拒绝)

nginx + uwsgi + django open uwsgi_params failed (13: permission denied)

我试着按照这里的 nginx 文档 https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html。但停留在 Configure nginx for your site。我重新启动了 nginx,它说“nginx: [emerg] open() "/home/hanys/oligoweb/uwsgi_params" failed (13: Permission denied) in /etc/nginx/sites-enabled/oligoweb.conf:19”。 我的 site.ini:

[uwsgi]
chdir = /home/hanys/oligoweb/
module = oligoweb.wsgi
home = /home/hanys/.virtualenv/oligo-env
master = true
processes = 10
socket = /home/hanys/oligoweb/oligoweb.sock
chmod-socket = 666
vacuum = true
daemonize   = /home/hanys/uwsgi-emperor.log
uid = www-data
gid = www-data

我的 site.conf 在 /etc/nginx/sites-available/

upstream django {
    server unix:///home/hanys/oligoweb/oligoweb.sock;
}

server {
    listen  80;
    server_name IP address here;
    charset     utf-8;
    # max upload size
    client_max_body_size 75M;
    # Django media and static files
    location /static {
        alias /home/hanys/oligoweb/static;
    }
    # Send all non-media requests to the Django server.
    location / {
        uwsgi_pass  django;
        include     /home/hanys/oligoweb/uwsgi_params;
    }
}

uwsgi_params 拥有 664 权限。我试过 chmod 777 uwsgi_params 但它没有用。 任何帮助将不胜感激!

一般来说,uwsgi_params 已经随你的 Nginx 一起提供了,所以你只需要 include uwsgi_params(所以它指的是 /etc/nginx/uwsgi_params 或类似的)。

如果不是这种情况,您可能还需要授予 Nginx 足够的权限来读取文件所在的目录结构,而不仅仅是文件本身。