LoginSignup
1
0

More than 5 years have passed since last update.

DjangoのPermissionError: [Errno 13] Permission denied: '/var/www'に対応

Last updated at Posted at 2018-12-24

初投稿になります。よろしくお願いいたします。

Djangoで開発をしている際に出たPermissionErrorにどのように対応したか紹介します。

環境

macOS X

Pythonのバージョンは以下の通りです。

$ python -V
Python 3.6.4 :: Anaconda, Inc.
$ python
>>> import django
>>> django.get_version()
'2.1.4'

エラー内容

collectstaticコマンドを打った際に以下のエラーが出て困っていました。

(PROJECT_NAME) $ python manage.py collectstatic
PermissionError: [Errno 13] Permission denied: '/var/www'

エラー対応

STATIC_ROOTとMEDIA_ROOTはそれぞれ以下のように設定しています。

settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
STATIC_ROOT = '/var/www/{}/static'.format(PROJECT_NAME)

MEDIA_URL = '/media/'
MEDIA_ROOT = '/var/www/{}/media'.format(PROJECT_NAME)

以下のコマンドで/var/wwwを確認したところ、wwwディレクトリは存在しませんでした。

$ cd /var; ls |grep www;

自分でディレクトリを作成する必要があります。

$ cd /var
var $ mkdir www

これは、Permission denied。

mkdir: www: Permission denied

次のようにします。パスワードを聞かれるので入力します。

var $ sudo mkdir www
Password:

同じようにディレクトリを作成しましょう。

var $ cd www
www $ sudo mkdir (PROJECT_NAME)
www $ cd (PROJECT_NAME)
(PROJECT_NAME) $ sudo mkdir static
(PROJECT_NAME) $ sudo mkdir media

そして、再度collectstaticコマンドを打ってみる。

(PROJECT_NAME) $ python manage.py collectstatic
.
.
.
PermissionError: [Errno 13] Permission denied: '/var/www/(PROJECT_NAME)/static/css'

sudoをつけて挑戦。

(PROJECT_NAME) $ sudo python manage.py collectstatic
Password:
XXX static files copied to '/var/www/(PROJECT_NAME)/static'.

成功!

以上。参考にしていただける方がいたら幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0