#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 в папке мультимедиа? @Pax3. просто измените владельца папки на
www-user
илиcurrent-user
— лучший вариант, чем установка 777 в папку.
Ответ №1:
можете ли вы проверить владельца /media . Измените владельца на www-data, если он принадлежит другому пользователю
Комментарии:
1. Вы могли бы включить команду chown здесь для справки.