DatabaseError:无法打开db文件,但仅适用于Django admin

时间:2011-01-31 09:41:31

标签: database django django-admin sqlite

这可能是我在Django工作4年中最奇怪的问题。

我的网站在本地工作正常。在生产环境中它也运行良好,除了当我尝试访问管理站点时,我收到服务器错误,这是Apache错误日志中的“OperationalError:无法打开数据库文件”。

DB文件是全局可写的,设置中的路径是绝对的。生产环境是Ubuntu Lucid / Python 2.6 / Sqlite3。我尝试使用Django 1.2.4和1.3 beta。

奇怪的是,我可以syncdb在服务器上。它创建表和管理员用户。我可以毫无问题地访问该网站。我可以运行shell并在python提示符下创建内容。该网站是可浏览的。只有当我访问admin时,才会出现此错误。

我没有依据任何理由。任何帮助是极大的赞赏。

ps:错误是在Apache级别引发的,而不是来自Django。 Django回溯在Apache错误日志中,其中显示DatabaseError: unable to open database file

2 个答案:

答案 0 :(得分:2)

一个愚蠢的猜测。

哪个用户正在运行apache?

我知道网站的其余部分工作很奇怪,但仔细检查你的sqlite数据库是否可以从Apache运行的用户那里读取和读写!

答案 1 :(得分:1)

sudo chown www-data /var/www/yourproject/db.sqlite3

这将解决问题(将用户设置为Apache)