【发布时间】: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