djangoでのstaticファイルが読み込まれない闇

こんにちわ。

最近はpythondjangoしています。

今回自分のローカル環境でdjangoプロジェクトを開発してサーバに上げたらstaticファイルが読み込まれず、cssが適用されない、という自体に陥りました。

 

サーバの環境はnginx+gunicornになります。

環境の詳しい説明はggrばたくさん出てくると思いますのでここでは割愛。

 

そこで今回の問題。

設定ファイルは以下の通り

nginx.conf

user nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;


events {
 worker_connections 1024;
}


http {
  include /etc/nginx/mime.types;
  default_type application/octet-stream;

  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';

  access_log /var/log/nginx/access.log main;

  sendfile on;
  #tcp_nopush on;

  keepalive_timeout 65;

  #gzip on;

  include /etc/nginx/conf.d/*.conf;
}

 

 

default.conf

 

server {
  server_name www.zanryu-derby.com;

  access_log off;

  location /static {
    alias /home/naoya/Projects/Zanryu_Derby/static;
    #root /static;
  }

  location / {
    proxy_pass http://127.0.0.1:9001;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Real-IP $remote_addr;
    add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
  }
}

 

ちゃんとSTATIC_ROOTに変えたしnginxの設定のstaitc_rootもちゃんと設定したのに読み込まれない…

 

ログを見てみると

2014/12/05 03:35:32 [error] 25727#0: *10 open() "/home/naoya/Projects/Zanryu_Derby/static/css/reset.min.css" failed (13: Permission denied), client: 133.20.55.189, server: www.zanryu-derby.com, request: "GET /static/css/reset.min.css HTTP/1.1", host: "133.20.55.164"
2014/12/05 03:35:32 [error] 25727#0: *14 open() "/home/naoya/Projects/Zanryu_Derby/static/css/bootstrap.css" failed (13: Permission denied), client: 133.20.55.189, server: www.zanryu-derby.com, request: "GET /static/css/bootstrap.css HTTP/1.1", host: "133.20.55.164"
2014/12/05 03:35:32 [error] 25727#0: *15 open() "/home/naoya/Projects/Zanryu_Derby/static/css/main.css" failed (13: Permission denied), client: 133.20.55.189, server: www.zanryu-derby.com, request: "GET /static/css/main.css HTTP/1.1", host: "133.20.55.164"

 

アクセス権限がない?と言われている。

 

ここでググってみて権限を与えたり、所有者をnginxにしたりと、ひと通りの方法を試したがダメだった…

 

そしてnginx.confの "user  nginx" の部分をもともとのファイルの所有者である "user  naoya" に変えたところcssが読み込まれた!!!

 

無事解決できたのだがなぜ "user  nginx" に変えた時はダメだったのだろうか…

 

まぁ解決できて良かった良かった。

 

すごい雑だが一応メモということで。