DatabaseError: Невозможно открыть файл базы данных, но только для администратора Django - PullRequest
5 голосов
/ 31 января 2011

Это может быть самой странной проблемой за мои 4 года с Джанго.

Мой сайт работает нормально локально. В производственной среде он также работает нормально, за исключением того, что при попытке получить доступ к сайту администратора я получаю сообщение об ошибке сервера, которое представляет собой «OperationalError: невозможно открыть файл базы данных» в журнале ошибок Apache.

Файл БД доступен для записи во всем мире, а путь в настройках является абсолютным. Производственная среда - Ubuntu Lucid / Python 2.6 / Sqlite3. Я пробовал оба с Django 1.2.4 и 1.3 бета.

Странная часть, я могу syncdb на сервере. Он создает таблицы и пользователя с правами администратора. Я могу получить доступ к сайту без проблем. Я могу запустить shell и создавать контент в приглашении Python. Сайт доступен для просмотра. Только когда я получаю доступ к admin, я получаю эту ошибку.

У меня нет оснований для каких-либо рассуждений. Любая помощь очень ценится.

пс: Ошибка возникает на уровне Apache, а не из Django. Трассировка Django находится в журнале ошибок Apache, который читает DatabaseError: unable to open database file.

Ответы [ 2 ]

2 голосов
/ 31 января 2011

Дурацкое предположение.

Какой пользователь запускает apache?

Я знаю, что странно, что остальная часть сайта работает, но дважды проверьте, что ваша база данных sqlite доступна и доступна для чтения от пользователя, под которым работает Apache!

1 голос
/ 29 июня 2015
sudo chown www-data /var/www/yourproject/db.sqlite3

это поможет (установите пользователя на Apache)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...