Apache - sqlite3.OperationalError: попытка записи базы данных только для чтения - PullRequest
0 голосов
/ 09 января 2019

Я запускаю флеш-приложение на CentOS7, используя sqlite3 в качестве базы данных и apache в качестве веб-хостинга.

Однако я сталкиваюсь с ошибкой sqlite3.OperationalError: attempt to write a readonly database, когда пользователь пытается выполнить действие записи в моем веб-приложении. (Читать данные из БД в порядке)

Я прочитал много вопросов, в которых говорилось о проблеме с правами доступа к файлу, и я попытался предоставить все права доступа к папке проекта и файлу .db, но все равно получил ошибку. Кто-нибудь знает, что случилось?

Apache httpd.conf

<Directory />
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

виртуальный хост .conf

<VirtualHost *:82>
    ServerName myweb.com

    WSGIDaemonProcess myweb user=flaskapp group=flaskapp threads=5
    WSGIScriptAlias / /var/www/myweb/wsgi.py

    <Directory /var/www/myweb>
        WSGIProcessGroup myweb
        WSGIApplicationGroup %{GLOBAL}
        Require all granted
    </Directory>
</VirtualHost>

Разрешение на доступ к папке проекта

[root@localhost myweb]# ls -l
total 20
-rwxrwxrwx. 1 flaskapp root     6785 Jan  9 10:33 index.py
-rwxrwxrwt. 1 flaskapp flaskapp 8192 Jan  9 10:19 myweb.db
drwxr-xr-x. 2 flaskapp root       34 Jan  8 18:46 __pycache__
drwxr-xr-x. 2 flaskapp root       77 Jan  8 18:46 static
drwxr-xr-x. 2 flaskapp root      122 Jan  8 18:46 templates
-rwxr-xr-x. 1 flaskapp root      133 Jan  8 18:52 wsgi.py

Мои настройки: CentOS7, Python3.6.7, Apache2.4.6, sqlite3

1 Ответ

0 голосов
/ 09 января 2019

Проблема, похоже, связана с SELinux на CentOS 7. Я решил проблему, временно отключив SELinux с помощью setenforce 0.

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