Django 上传文件出现 OSError Permission denied的解决办法
我的服务器在Ubuntu上,使用了Apache+Nginx做App Server,Django+Python开发,今天上传文件时候出现了OSError的错误,具体原因为Permission denied
一看发现是因为上传文件的文件夹可能没有被赋予www-data用户(Apache和Nginx用户)写的权限
根据以下网站的解决办法已经解决问题了,特写此博希望能帮到大家
http://stackoverflow.com/questions/1682440/permission-denied-error-with-django-while-uploading-a-file
I just ran into this same problem. And found the solution if you are hosting with Apache as your server. For instance if my settings were:
MEDIA_ROOT = '/var/www/media/geekingreen'
then I would simply need to give that folder the correct permissions recursively to make sure that any sub-folders also have the same permission. The default group for apache is www-data so to give permission to my django app I would run these commands.
cd /var/www/mediachgrp -R www-data geekingreen/chmod -R g+w geekingreen/
The chgrp -R www-data geekingreen/ command changes the directory geekingreen and any subdirectories to have the group www-data.
The chmod -R g+w geekingreen/ command changes what permissions the group has on all of these folders that now belong to www-data, to now have the write permission. Obviously required for uploads.
Hope this can help anyone that may have had a similar problem.