数据库错误:无法打开数据库文件,但仅限 Django 管理员
这可能是我使用 Django 4 年以来遇到的最奇怪的问题。
我的网站在本地运行正常。在生产环境中,它也运行良好,但当我尝试访问管理站点时,我收到一个服务器错误,即 Apache 错误日志中的“OperationalError:无法打开数据库文件”。
DB文件是全局可写的,并且设置中的路径是绝对的。生产环境为Ubuntu Lucid / Python 2.6 / Sqlite3。我尝试了 Django 1.2.4 和 1.3 beta。
奇怪的是,我可以在服务器上同步数据库。它创建表和管理员用户。我可以毫无问题地访问该网站。我可以运行 shell
并在 python 提示符中创建内容。该网站是可浏览的。只有当我访问管理员时,我才会收到此错误。
我没有任何推理的依据。非常感谢任何帮助。
ps: 该错误是在 Apache 级别引发的,而不是从 Django 引发的。 Django 回溯位于 Apache 错误日志中,其中显示DatabaseError:无法打开数据库文件
。
This may be the strangest problem in my 4 years with Django.
My site is working alright locally. In production environment it also runs fine, except, when I try to access the admin site, I get a server error which is an "OperationalError: unable to open database file" in the Apache error log.
The DB file is world writable and the path in the settings are absolute. The production environment is Ubuntu Lucid / Python 2.6 / Sqlite3. I tried both with Django 1.2.4 and 1.3 beta.
The weird part is, I can syncdb
on server. It creates the tables and the admin user. I can access the site without problem. I can run shell
and create content within python prompt. The site is browsable. It is only when I access admin, I get this error.
I have no basis left for any reasoning. Any help is greatly appreciated.
ps: The error is raised at Apache level, not from Django. The Django traceback is in Apache error log, which reads DatabaseError: unable to open database file
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一个愚蠢的猜测。
哪个用户正在运行 apache?
我知道网站的其余部分正常工作很奇怪,但请仔细检查您的 sqlite 数据库是否可以从运行 Apache 的用户访问并读写!
A stupid guess.
Which user is running apache?
I know it's strange that the rest of the site works, but double-check your sqlite db is reachable and read-writable from the user Apache is running as!
这就能解决问题(将用户设置为 Apache)
this will do the trick(set the user to Apache)