这个问题似乎已被问过很多次,但我检查过的所有解决方案尚未对我有用。我在跑步nginx
在安装了 Django 1.6.1 的 Ubuntu 14.04 服务器上。我正在尝试为项目使用默认的 django 管理后端(通常位于 localhost/admin/)。
我遇到的问题是OperationalError at /admin/ attempt to write a readonly database
(当我更改 db.sqlite3 文件的 chmod 权限时更新,错误现在显示为OperationalError at /admin/ unable to open database file
但我已经检查了上面的每个选项Django 新手错误网站上的答案,没有骰子)
一些答案谈到了生成的数据库文件的 r+w+x 权限db.sqlite3
据我所知777
在数据库文件上没有做任何事情所以我把它保留在656
.
据我所知,django 项目工作正常(所有页面都渲染良好,/admin 页面渲染没有 css。当我尝试使用 localhost/admin/ 登录并单击“提交”时,我得到带有错误的 django 调试页面)。它们都属于root:root
。我尝试更改其拥有的每个文件和目录的权限www-data:www-data
但什么也没有。
我什至尝试更改 settings.py 以拥有数据库的绝对路径而不是os.path.join(BASE_DIR, 'db.sqlite3')
我认为这归因于所有权问题,但我会寻求任何帮助。
经过所有这些麻烦和两个多小时的头撞墙之后,档案的答案......
我使用的是 Gunicorn,我从 Digital Ocean 中获取了一个饼干切割机,这使得用户成为 django。我认为千篇一律的方法将是一种快捷方式,易于修改并跳过无聊的部分。事实证明在/etc/init/gunicorn.conf
setuid
and setgid
被设置为用户 django。我的错误是没有阅读文档并假设这些意义不大。
如果您遇到此问题,请删除setuid
or setgid
或将它们设置为www-data
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)