1
votes

I have setup Django project on CentOS 6.5 with Nginx and uwsgi.

I am Getting error while accessing static content as below (/var/log/nginx/error.log)- 2015/11/02 19:05:37 [error] 29701#0: *52 open() "/home/amar/workspace/myproj/config/static/rest_framework/js/default.js" failed (13: Permission denied), client: 172.29.100.104, server: myapi.dev, request: "GET /static/rest_framework/js/default.js HTTP/1.1", host: "myapi.dev", referrer: "http://myapi.dev/api/v1/datasets/"

My /etc/nginx/conf.d/virtual.conf is as shown below -

# mysite_nginx.conf

# the upstream component nginx needs to connect to
upstream django {
    server unix:///tmp/uwsgi.sock; # for a file socket
    #server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}

# configuration of the server
#
#API
#
server {
    # the port your site will be served on
    listen      80;
    # the domain name it will serve for
    server_name myapi.dev; # substitute your machine's IP address or FQDN
    charset     utf-8;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    location /static {
    autoindex  on;
        alias /home/amar/workspace/myproj/config/static; # your Django project's static files - amend as required
    }

    # Finally, send all non-media requests to the Django server.
    location / {
        uwsgi_pass  django;
        include     /etc/nginx/uwsgi_params; # the uwsgi_params file you installed
    }
}

Here is my uwsgi.ini file :


[uwsgi]

chdir = /home/amar/workspace/myproj
#home = %(base)/.virtualenvs/myproj
module = config.wsgi:application

home = /home/amar/.virtualenvs/myproj

master = true
processes = 3

socket = /tmp/uwsgi.sock
chmod-socket = 777
vacuum = true

Could someone point me in the right direction?

2
check your static directory owner and permissions.Hasan Ramezani
permission of static directory is 755 and directory owner is nginx. I changed owner to other user and directory permissions but nothing worked.Amar

2 Answers

1
votes

It took time but I've fixed the problem myself. Changed the user from amar to root and set static folder permission to 666. Hope it helps someone in future.

0
votes

Probably related to SELinux. You will need to allow HTTPD scripts and modules to connect to the network.

setsebool httpd_can_network_connect on -P