这可能是我在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
。
答案 0 :(得分:2)
一个愚蠢的猜测。
哪个用户正在运行apache?
我知道网站的其余部分工作很奇怪,但仔细检查你的sqlite数据库是否可以从Apache运行的用户那里读取和读写!
答案 1 :(得分:1)
sudo chown www-data /var/www/yourproject/db.sqlite3
这将解决问题(将用户设置为Apache)