質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

12285閲覧

collectstaticで、PermissionError: [Errno 13] Permission denied: '/test'

退会済みユーザー

退会済みユーザー

総合スコア0

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

0クリップ

投稿2018/07/02 03:31

Djangoでアプリを開発しています。
python manage.py collectstaticを実行すると、下記のようにPermissionErrorが出ます。

$ python manage.py collectstatic Copying '/home/username/myproject/testproject/lib/python3.5/site-packages/jet/static/admin/css/forms.css' Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/username/myproject/testproject/lib/python3.5/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line utility.execute() File "/home/username/myproject/testproject/lib/python3.5/site-packages/django/core/management/__init__.py", line 365, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/username/myproject/testproject/lib/python3.5/site-packages/django/core/management/base.py", line 288, in run_from_argv self.execute(*args, **cmd_options) File "/home/username/myproject/testproject/lib/python3.5/site-packages/django/core/management/base.py", line 335, in execute output = self.handle(*args, **options) File "/home/username/myproject/testproject/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 189, in handle collected = self.collect() File "/home/username/myproject/testproject/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 114, in collect handler(path, prefixed_path, storage) File "/home/username/myproject/testproject/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 354, in copy_file self.storage.save(prefixed_path, source_file) File "/home/username/myproject/testproject/lib/python3.5/site-packages/django/core/files/storage.py", line 49, in save return self._save(name, content) File "/home/username/myproject/testproject/lib/python3.5/site-packages/django/core/files/storage.py", line 236, in _save os.makedirs(directory) File "/usr/lib/python3.5/os.py", line 231, in makedirs makedirs(head, mode, exist_ok) File "/usr/lib/python3.5/os.py", line 231, in makedirs makedirs(head, mode, exist_ok) File "/usr/lib/python3.5/os.py", line 231, in makedirs makedirs(head, mode, exist_ok) File "/usr/lib/python3.5/os.py", line 241, in makedirs mkdir(name, mode) PermissionError: [Errno 13] Permission denied: '/test'

パーミッションの問題だと思ったので、
https://qiita.com/xKxAxKx/items/f43d1bddbc4fb31013b1
を参考に、
$ sudo chmod o+x ~/myproject/testproject/
を実行し、ls -lを実行すると、
drwxrwxr-x 12 username username 4096 May 18 21:15 testproject
となりました。
そのため、実行権限は、与えられていると思います。

なお、設定は下記のようになっています。

python

1# settings.py 2BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 3STATIC_URL = '/static/' 4MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 5MEDIA_URL = '/media/' 6STATIC_ROOT = os.path.join(BASE_DIR, "/archi/static/")
<!-- etc/nginx/site-enabled/default --> location /static/{ alias /home/username/myproject/testproject/test/static/; access_log /dev/null; }

どこに問題がありそうか、お気づきの方、見えないでしょうか。
よろしくお願い致しますm(__)m

chapin👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

PermissionError: [Errno 13] Permission denied: '/test'

このエラーは「test」という名前のディレクトリに書き込み権限がないのでエラーとなっています。どこにこのディレクトリが書いてあるのかわかりませんが、 collectstatic コマンドを実行するユーザーが、そのディレクトリに書き込み権限がないとエラーになります。

投稿2018/07/16 10:50

tell_k

総合スコア2120

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/07/17 07:44

ご回答ありがとうございます。書き込み権限を与えるために、 username@ik0-000-00000:~/myproject/testproject$ chmod o+x+w test を実行しました。その上で、 username@ik0-000-00000:~/myproject/testproject$ ls -l を実行すると、 drwxrwxrwx 6 username username 4096 Jul 3 22:18 test と表示されるので、testというディレクトリに書き込み権限は付与されたと思います。 しかし、 username@ik0-000-00000:~/myproject/testproject$ python manage.py collectstatic を実行すると、やはり PermissionError: [Errno 13] Permission denied: '/test' となってしまいます。
guest

0

/testに書きに行くのは本来の動作ではないと思うので、ディレクトリの設定に問題があって/home/username/myproject/testproject/testになるべきものが/testになってる?

投稿2018/07/16 11:22

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/07/17 07:49

ご回答ありがとうございます。 本来であれば、python manage.py collectstaticの結果、どこに書き込みにいくのでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問