Наличие «отказано в разрешении» при попытке загрузить изображение в /media / dir, DJANGO

#python #django #apache

#python #django #apache

Вопрос:

Я настраиваю фреймворк django на сервер apache, обычно при попытке вставить запись в БД проблем не возникает. Но если я попытаюсь загрузить что-то в media каталог, возникает проблема с разрешением. Я уже предоставляю chmod -R 755 to /var/www/ родительскую папку проекта. Но все еще проблема.

settings.py

 STATIC_URL = '/static/'
MEDIA_URL = "/media/"

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
  

и .conf настройки приведены ниже.

 <VirtualHost *:8001>
        ServerName example.com
        DocumentRoot /var/www/

        Alias /static /var/www/example.com/src/static
        <Directory "/var/www/example.com/src/static">
                Options FollowSymLinks
                Order allow,deny
                Allow from all
                Require all granted
        </Directory>

        Alias /media /var/www/example.com/media
        <Directory "/var/www/example.com/media">
                Options FollowSymLinks
                Order allow,deny
                Allow from all
                Require all granted
        </Directory>
        ErrorLog /var/www/example.com/logs/apis_error.log
        CustomLog /var/www/example.com/logs/apis_access.log combined

        WSGIPassAuthorization On
        WSGIDaemonProcess example.com python-path=/var/www/example.com:/var/www/venv36/lib/python3.6/site-packages
        WSGIProcessGroup example.com
        WSGIScriptAlias / /var/www/example.com/src/wsgi.py

        <Directory /var/www/example.com/src>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>
</VirtualHost>
  

Есть идеи, в чем здесь проблема?

Комментарии:

1. 755 обозначает RWX (пользователь) RWX (группа) RWX (другое). Если вы не являетесь пользователем, вы не можете выполнить запись в этот каталог. Попробуйте 766 или 777 . Другой, проверьте владельца каталога. Это может быть root . И если вы не являетесь root , вы не можете писать. Вы можете изменить владельца каталога, sudo chown -R user:group folder

2. хорошо сказано. 766 не решает проблему, но передача 777 в /media папку решает проблему. НО можно ли указывать 777 в папке мультимедиа? @Pax

3. просто измените владельца папки на www-user или current-user — лучший вариант, чем установка 777 в папку.

Ответ №1:

можете ли вы проверить владельца /media . Измените владельца на www-data, если он принадлежит другому пользователю

Комментарии:

1. Вы могли бы включить команду chown здесь для справки.