【问题标题】:Apache - sqlite3.OperationalError: attempt to write a readonly databaseApache - sqlite3.OperationalError:尝试写入只读数据库
【发布时间】:2019-01-09 04:00:20
【问题描述】:

我在 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

【问题讨论】:

    标签: python-3.x apache flask sqlite centos


    【解决方案1】:

    这个问题似乎与 CentOS 7 上的 SELinux 有关。我通过 setenforce 0 临时关闭 SELinux 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 2021-03-22
      • 2018-03-07
      • 2021-11-07
      相关资源
      最近更新 更多