我正在尝试使用 WSGI 在 CentOS Apache2 上运行 Flask REST 服务。 REST 服务需要非常小的存储空间。所以我决定将 SQLite 与 sqlite3
python 包一起使用。当使用 app.run()
运行时,整个应用程序在我的本地系统和 CentOS 服务器上运行良好。但是当我使用 WSGI 在 Apache 上托管应用程序时,我得到了
OperationalError: attempt to write a readonly database
我检查了文件的权限。使用 chown
和 chgrp
将文件的用户和组设置为 apache(服务器在其下运行)。此外,该文件具有 rwx
权限。我仍然收到只读数据库错误。以下是我在 db 文件上运行 ls -al
得到的结果:
-rwxrwxrwx. 1 apache apache 8192 Nov 19 01:39 dbfile.db
除了更改数据库文件权限外,您还需要更改托管数据库文件的目录的权限。您可以尝试以下命令:
chmod 664 /path/to/your/directory/
您还可以更改目录的所有者,如下所示:
chown apache:apache /path/to/your/directory/
有话要说