Administrador de Django backend ‘Error operacional’ bash de escribir una base de datos de solo lectura

Esta pregunta parece haberse formulado muchas veces, pero todas las soluciones que he comprobado todavía no me han funcionado. Estoy ejecutando nginx en un servidor Ubuntu 14.04 con Django 1.6.1 instalado. Estoy intentando usar el backend de administración de django predeterminado para un proyecto (generalmente en localhost / admin /).

El problema que encuentro es OperationalError at /admin/ attempt to write a readonly database

(Actualice cuando cambié los permisos chmod para el archivo db.sqlite3, el error ahora lee OperationalError at /admin/ unable to open database file pero he revisado todas las opciones en el sitio web de Django Newbie Mistakes para ver la respuesta y no los dados)

Algunas respuestas hablaron sobre los permisos r + w + x para el archivo de base de datos db.sqlite3 generado hasta donde puedo decir que incluso 777 en el archivo db no hace nada, así que lo he mantenido en 656 .

Por lo que puedo decir, el proyecto django funciona (todas las páginas se procesan bien, la página / admin se procesa sin css. Cuando bash iniciar sesión usando localhost / admin / y hago clic en enviar, aparece la página de depuración de django con el error). Todos son propiedad de root:root . He intentado cambiar los permisos para cada archivo y directorio que será propiedad de www-data:www-data pero nada.

Incluso he intentado cambiar settings.py para tener una ruta absoluta a la base de datos en lugar de os.path.join(BASE_DIR, 'db.sqlite3')

Creo que se trata de un problema de propiedad, pero tomaré cualquier ayuda.

Después de toda esa molestia y más de 2 horas de golpearme la cabeza contra una pared, la respuesta para los archivos …

Estaba usando Gunicorn, tomé un cortador de cookies de Digital Ocean que hizo que el usuario django. Pensé que el enfoque del cortador de cookies sería un atajo fácil de modificar y omitir los bits aburridos. Resulta en /etc/init/gunicorn.conf setuid y setgid se configuró para el usuario django. Mi culpa por no leer la documentación y asumir que esto significaba poco.

Si tiene este problema, elimine setuid o setgid o setgid en www-data .