Actualmente tengo un modelo simple definido, con una función de fotoupload que utiliza el complemento django thumbnails.Permiso Error denegado con Django al cargar un archivo
pero cuando intento cargar me da el siguiente error:
OSError at /admin/products/photo/add/
(13, 'Permission denied')
Ahora, sé que esto es que parece ser un problema de permisos, por lo que la primera cosa que he comprobado eran permisos en el directorio y cambió estos a 777 (solo para probar), reiniciaron el servidor y fcgi y todavía da el error.
Rastreo
Traceback: File "/usr/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
92. response = callback(request, *callback_args,
**callback_kwargs) File "/usr/lib/python2.6/dist-packages/django/contrib/admin/options.py" in wrapper
226. return self.admin_site.admin_view(view)(*args,
**kwargs) File "/usr/lib/python2.6/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func
44. response = view_func(request, *args, **kwargs) File "/usr/lib/python2.6/dist-packages/django/contrib/admin/sites.py" in inner
186. return view(request, *args, **kwargs) File "/usr/lib/python2.6/dist-packages/django/db/transaction.py" in _commit_on_success
240. res = func(*args, **kw) File "/usr/lib/python2.6/dist-packages/django/contrib/admin/options.py" in add_view
734. self.save_model(request, new_object, form, change=False) File "/usr/lib/python2.6/dist-packages/django/contrib/admin/options.py" in save_model
557. obj.save() File "/usr/lib/python2.6/dist-packages/django/db/models/base.py" in save
410. self.save_base(force_insert=force_insert, force_update=force_update) File "/usr/lib/python2.6/dist-packages/django/db/models/base.py" in save_base
483. values = [(f, f.get_db_prep_save(raw and getattr(self, f.attname) or f.pre_save(self, True))) for f in meta.local_fields if not isinstance(f, AutoField)] File "/usr/lib/python2.6/dist-packages/django/db/models/fields/files.py" in pre_save
252. file.save(file.name, file, save=False) File "/var/www/django_projects/gang/../gang/products/thumbs.py" in save
84. super(ImageWithThumbsFieldFile, self).save(name, content, save) File "/usr/lib/python2.6/dist-packages/django/db/models/fields/files.py" in save
91. self.name = self.storage.save(name, content) File "/usr/lib/python2.6/dist-packages/django/core/files/storage.py" in save
47. name = self._save(name, content) File "/usr/lib/python2.6/dist-packages/django/core/files/storage.py" in _save
146. os.makedirs(directory) File "/usr/lib/python2.6/os.py" in makedirs
150. makedirs(head, mode) File "/usr/lib/python2.6/os.py" in makedirs
150. makedirs(head, mode) File "/usr/lib/python2.6/os.py" in makedirs
150. makedirs(head, mode) File "/usr/lib/python2.6/os.py" in makedirs
157. mkdir(name, mode)
Exception Type: OSError at /admin/products/photo/add/ Exception Value: (13, 'Permission denied')
El usuario que el demonio FCGI se está ejecutando en duda tiene acceso a leer y escribir en ese directorio.
De settings.py
MEDIA_ROOT = '/var/www/sites/gang/http/media/'
MEDIA_ROOT_URL = '/media/'
Hola, peter, este cambio de permisos de los directorios raíz parece un poco inseguro? – ismail
Uh, creo que dije 'verificar', no 'cambiar' ... gran diferencia. He visto la siguiente situación: tienes tu DOCROOT en/a/b/c/d. 'd' es 777 (normalmente por desesperación), 'a', y 'b' son 755 (normal), pero 'c' es 700 (o similar) lo que prácticamente termina la fiesta. Sigues jugando con 'd', pero fue 'c' (o lo que sea) ese fue el problema. –
gracias, descubrí el problema pero tu respuesta fue de ayuda. – ismail