Ich versuche, einen Flask REST Service auf CentOS Apache2 mit WSGI auszuführen. Der REST-Dienst benötigt einen sehr kleinen Speicher. Also entschied ich mich, SQLite mit sqlite3
Python-Paket zu verwenden. Die gesamte Anwendung funktionierte perfekt auf meinem lokalen System und auf dem CentOS-Server, wenn sie unter app.run()
lief. Aber wenn ich WSGI verwendet, um die Anwendung auf Apache Gastgeber, ich bin immerPython sqlite3 OperationalError: Versuch, eine schreibgeschützte Datenbank zu schreiben
OperationalError: attempt to write a readonly database
Ich habe die Rechte der Datei überprüft. Der Benutzer und die Gruppe der Datei werden unter Verwendung von chown
und chgrp
auf Apache (unter dem der Server ausgeführt wird) festgelegt. Außerdem verfügt die Datei über die Berechtigung rwx
. Noch bekomme ich Lese-Datenbankfehler. Es folgt, was ich bekomme ls -al
auf der db-Datei ausgeführt wird:
-rwxrwxrwx. 1 apache apache 8192 Nov 19 01:39 dbfile.db
Meine Apache-Konfiguration:
<VirtualHost *>
ServerName wlc.host.com
WSGIDaemonProcess wlcd
WSGIScriptAlias//var/www/html/wlcd.wsgi
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
<Directory /var/www/html/>
WSGIProcessGroup wlcd
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
Require all granted
</Directory>
Haben Sie das Verzeichnis des ower ändern 'Apache: apache'? – ettanany
Das Python-Paket meiner flask-App hat die Berechtigungen 'drw-rw-r -' (mit apache: apache) und das wsgi-Skript, das dies importiert, hat dasselbe. –
Versuchen Sie '-R' wie' chown -R apache hinzuzufügen: apache/Pfad/zu/Ihrem/Verzeichnis/' – ettanany