Есть много вопросов о похожих проблемах, но ни одного конкретного о комбинации ошибки 500 с Django. Например. похожие вопросы:
Журнал ошибок Apache:
[Wed Jun 19 18:41:44.364270 2019] [access_compat:error] [pid 9386:tid 140669708334848] [client 1.2.3.4:1948] AH01797: client denied by server configuration: /home/user/website/wsgi.py, referer: https://website.org/admin/login/?next=/admin/
Ошибка отображается как:
Error 500: Internal Server Error
Но это появляется только при попытке доступа к панели администратора, а не при просмотре страниц или загрузке файлов из защищенных каталогов Apache. Все вопросы и ответы, которые я смог найти, говорят об ошибке в настройках Apache, но, похоже, ее там нет (с момента установки Apache ничего не изменилось).
Сообщения об ошибках вводили в заблуждение. Фактическая причина ошибки заключалась в том, что база данных сервера обслуживалась sqlite
, и файл получил неправильное право собственности во время обновления. Теперь он принадлежал root
и не был доступен для записи пользователем Django Apache (www-data
):
username@servername:~/project$ ls -lsa
total 924
4 drwxr-xrwx 7 www-data www-data 4096 Mar 22 02:48 .
4 drwxr-xrwx 4 www-data www-data 4096 Dec 24 2017 ..
880 -rwxr-xr-x 1 root root 1046528 Mar 22 02:48 db.sqlite3
4 drwxr-xrwx 5 www-data www-data 4096 Mar 2 12:56 files
4 drwxr-xrwx 7 www-data www-data 4096 Mar 26 22:13 front
4 drwxr-xrwx 8 www-data www-data 4096 Jun 11 15:24 .git
4 -rwxrwxr-x 1 username username 1218 Nov 8 2018 .gitignore
4 -rwxrwxrwx 1 www-data www-data 800 Apr 3 2017 manage.py
4 drwxr-xrwx 3 www-data www-data 4096 Mar 26 15:42 project
4 -rwxrwxrwx 1 www-data www-data 56 Jun 2 2017 README.md
4 -rw-rw-r-- 1 username username 49 Nov 8 2018 requirements.txt
4 drwxrwxrwx 4 www-data www-data 4096 Jan 11 2017 static
Админ-панель Django обновляет базу данных при входе пользователя в админ-панель (для ведения записей), невозможность сделать это приводит к ошибке 500.
Чтобы исправить это, просто верните право собственности на нормальное:
sudo chown www-data: db.sqlite3