У меня есть CentOS-сервер, на котором у меня есть Apache, Django, Django CMS и mod_wsgi. Мои файлы проекта Django хранятся в каталоге /srv
, и я включил SELinux по соображениям безопасности.
Мне удалось успешно интегрировать Django-CMS в Django, и когда я посещаю локальный IP-адрес, я вижу свои страницы. Однако, когда я пытаюсь посетить /admin (где я могу начать использовать функциональность CMS), я получаю DatabaseError at /admin/ attempt to write a readonly database
.
Хорошо.
Итак, поскольку у меня есть файл .sqlite
в моей папке проекта, я запустил ls -l
на нем, который возвратил:
-rw-r--r--. 1 root root 133120 Jan 5 11:53 DATABASE.sqlite
Хорошо, поэтому я подумал, что, возможно, Apache не смог прочитать этот файл из-за некоторых разрешений, поэтому после нескольких исследований подобных проблем в Stackoverflow я побежал:
> chmod 664 DATABASE.sqlite
> chown apache /srv/mysite
> chown apache /srv/mysite/DATABASE.sqlite
Теперь вывод ls -l
выглядит следующим образом:
-rw-rw-r--. 1 apache root 133120 Jan 5 11:53 DATABASE.sqlite
К сожалению, я все еще получаю ту же ошибку при попытке доступа /admin в моем приложении Django. Любая помощь будет принята с благодарностью! Возможно, что-то связано с разрешениями SELinux, но я не знаю, с чего начать диагностировать, какие проблемы с разрешениями происходят.
EDIT:
Я побежал
> chown apache:apache /srv/mysite
> chown apache:apache /srv/mysite/DATABASE.sqlite
и быстрый ls -l
показывает, что владелец каталога mysite
и .sqlite
теперь находится в apache
. Тем не менее, я все еще получаю ошибки при попытке посетить страницу /admin
. я chmod
отредактировал каталог /srv/mysite
до 757 и DATABASE.sqlite
файла до 756, потому что это лучшее, что я могу сделать, чтобы получить разрешения на работу. Мне сказали, что это угроза безопасности, но я не могу понять, как дать ей меньше разрешений и получить пропуск по ошибкам unable to read/open database file
. Это из-за SELinux?
FYI, я работаю под обычной учетной записью пользователя в CentOS и sudo, когда мне нужно поднять:
[[email protected] ]$