nginx+django+uwsgi静态文件403禁止访问
nginx+django+uwsgi static files 403 Forbidden
您好~我正在CentOS 6.5 中部署一个网站。框架是django1.7。我使用 nginx 和 uwsgi。
除了所有静态文件的 403 禁止访问外,该网站现在可用。
我在谷歌上搜索了几个小时,并将整个站点文件夹更改为 chmod 777。文件夹的所有者是 kltc,nginx.conf 中的用户也是 kltc。
我不知道为什么问题仍然是 Permission denied。
nginx.conf
user kltc;
worker_processes 1;
kuaileticao.miyayx.me
server {
# the port your site will be served on
listen 80;
# the domain name it will serve for
server_name kuaileticao.miyayx.me; # substitute your machine's IP address or FQDN
charset utf-8;
access_log /srv/www/nginx/kuaileticao.miyayx.me/access.log;
error_log /srv/www/nginx/kuaileticao.miyayx.me/error.log;
location /static {
autoindex on;
alias /home/kltc/Project/sunny_sports/sunny_sports/static;
}
# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass 127.0.0.1:8001;
include uwsgi_params; # the uwsgi_params file you installed
}
}
uwsgi.ini
[uwsgi]
# the base directory (full path)
chdir=/home/kltc/Project/sunny_sports
# Django's wsgi file
module=sunny_sports.wsgi:application
master=true
# maximum number of worker processes
processes=10
# the socket (use the full path to be safe
socket=127.0.0.1:8001
chmod-socket=664
chown-socket=kltc:kltc
pidfile=/tmp/project-master.pid
# clear environment on exit
vacuum=true
max-requests=5000
daemonize=sunny_sports.uwsgi.log
error.log
[error] 34335#0: *73 open() "/home/kltc/Project/sunny_sports/sunny_sports/static/css/font-awesome.min.css" failed (13: Permission denied), client: 157.7.154.194, server: kuaileticao.miyayx.me, request: "GET /static/css/font-awesome.min.css HTTP/1.1", host: "kuaileticao.miyayx.me", referrer: "http://kuaileticao.miyayx.me/"
[kltc@localhost static]$ pwd
/home/kltc/Project/sunny_sports/sunny_sports/static
[kltc@localhost static]$ ls -l
total 32
4 drwxrwxrwx. 2 kltc kltc 4096 Feb 25 18:51 avatars
4 drwxrwxrwx. 7 kltc kltc 4096 Feb 25 18:51 css
4 drwxrwxrwx. 2 kltc kltc 4096 Feb 25 18:51 custom
4 drwxrwxrwx. 2 kltc kltc 4096 Feb 25 18:51 font
4 drwxrwxrwx. 2 kltc kltc 4096 Feb 25 18:51 fonts
4 drwxrwxrwx. 3 kltc kltc 4096 Feb 25 18:51 images
4 drwxrwxrwx. 2 kltc kltc 4096 Feb 25 18:51 img
4 drwxrwxrwx. 10 kltc kltc 4096 Feb 26 08:18 js
>
[kltc@localhost static]$ ps -aux | grep nginx
root 37444 0.0 0.0 110008 2048 ? Ss 09:02 0:00 nginx: master process /usr/sbin/nginx
kltc 37445 0.0 0.0 112548 3700 ? S 09:02 0:00 nginx: worker process
我试过几种方法。例如,将 nginx.conf 用户更改为 root
。但其中 none 有效。
希望得到您的帮助。谢谢!
确保您在设置文件中声明了 STATIC_ROOT。
此外,在 运行 服务器之前尝试 运行 python manage.py collectstatic --noinput
。
希望有用!
确保将项目的父目录 (/home) 更改为 nginx worker 可读。
chown -R kltc:kltc /home
chmod -R ug+r /home
您好~我正在CentOS 6.5 中部署一个网站。框架是django1.7。我使用 nginx 和 uwsgi。
除了所有静态文件的 403 禁止访问外,该网站现在可用。
我在谷歌上搜索了几个小时,并将整个站点文件夹更改为 chmod 777。文件夹的所有者是 kltc,nginx.conf 中的用户也是 kltc。
我不知道为什么问题仍然是 Permission denied。
nginx.conf
user kltc;
worker_processes 1;
kuaileticao.miyayx.me
server {
# the port your site will be served on
listen 80;
# the domain name it will serve for
server_name kuaileticao.miyayx.me; # substitute your machine's IP address or FQDN
charset utf-8;
access_log /srv/www/nginx/kuaileticao.miyayx.me/access.log;
error_log /srv/www/nginx/kuaileticao.miyayx.me/error.log;
location /static {
autoindex on;
alias /home/kltc/Project/sunny_sports/sunny_sports/static;
}
# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass 127.0.0.1:8001;
include uwsgi_params; # the uwsgi_params file you installed
}
}
uwsgi.ini
[uwsgi]
# the base directory (full path)
chdir=/home/kltc/Project/sunny_sports
# Django's wsgi file
module=sunny_sports.wsgi:application
master=true
# maximum number of worker processes
processes=10
# the socket (use the full path to be safe
socket=127.0.0.1:8001
chmod-socket=664
chown-socket=kltc:kltc
pidfile=/tmp/project-master.pid
# clear environment on exit
vacuum=true
max-requests=5000
daemonize=sunny_sports.uwsgi.log
error.log
[error] 34335#0: *73 open() "/home/kltc/Project/sunny_sports/sunny_sports/static/css/font-awesome.min.css" failed (13: Permission denied), client: 157.7.154.194, server: kuaileticao.miyayx.me, request: "GET /static/css/font-awesome.min.css HTTP/1.1", host: "kuaileticao.miyayx.me", referrer: "http://kuaileticao.miyayx.me/"
[kltc@localhost static]$ pwd /home/kltc/Project/sunny_sports/sunny_sports/static [kltc@localhost static]$ ls -l total 32 4 drwxrwxrwx. 2 kltc kltc 4096 Feb 25 18:51 avatars 4 drwxrwxrwx. 7 kltc kltc 4096 Feb 25 18:51 css 4 drwxrwxrwx. 2 kltc kltc 4096 Feb 25 18:51 custom 4 drwxrwxrwx. 2 kltc kltc 4096 Feb 25 18:51 font 4 drwxrwxrwx. 2 kltc kltc 4096 Feb 25 18:51 fonts 4 drwxrwxrwx. 3 kltc kltc 4096 Feb 25 18:51 images 4 drwxrwxrwx. 2 kltc kltc 4096 Feb 25 18:51 img 4 drwxrwxrwx. 10 kltc kltc 4096 Feb 26 08:18 js
>
[kltc@localhost static]$ ps -aux | grep nginx
root 37444 0.0 0.0 110008 2048 ? Ss 09:02 0:00 nginx: master process /usr/sbin/nginx
kltc 37445 0.0 0.0 112548 3700 ? S 09:02 0:00 nginx: worker process
我试过几种方法。例如,将 nginx.conf 用户更改为 root
。但其中 none 有效。
希望得到您的帮助。谢谢!
确保您在设置文件中声明了 STATIC_ROOT。
此外,在 运行 服务器之前尝试 运行 python manage.py collectstatic --noinput
。
希望有用!
确保将项目的父目录 (/home) 更改为 nginx worker 可读。
chown -R kltc:kltc /home
chmod -R ug+r /home